From c24c83fd9a9c59308d721dc21293fb5e9aec95d4 Mon Sep 17 00:00:00 2001 From: Hana Date: Tue, 18 Jun 2024 19:04:03 +0800 Subject: [PATCH] refactor: use iteration to evaluate binary expressions (#6851) fix: init --- crates/node_binding/src/env.rs | 15 - crates/node_binding/src/lib.rs | 10 - .../src/utils/eval/eval_binary_expr.rs | 58 +- .../src/visitors/dependency/parser/mod.rs | 1 - .../parsing/evaluate-binary/deep.js | 1743 +++++++++ .../parsing/evaluate-binary/deep2.js | 3205 +++++++++++++++++ .../parsing/evaluate-binary/index.js | 4 + x.mjs | 2 +- 8 files changed, 4992 insertions(+), 46 deletions(-) delete mode 100644 crates/node_binding/src/env.rs create mode 100644 packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep.js create mode 100644 packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep2.js create mode 100644 packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/index.js diff --git a/crates/node_binding/src/env.rs b/crates/node_binding/src/env.rs deleted file mode 100644 index 0298b847e4d..00000000000 --- a/crates/node_binding/src/env.rs +++ /dev/null @@ -1,15 +0,0 @@ -use std::env; -use std::ffi::OsStr; - -pub fn set_env_if_unset(k: K, v: V) -where - K: AsRef, - V: AsRef, -{ - match env::var(&k) { - Ok(_) => (), - Err(_) => { - env::set_var(&k, v); - } - } -} diff --git a/crates/node_binding/src/lib.rs b/crates/node_binding/src/lib.rs index 257205b6d55..56cc55ffb4c 100644 --- a/crates/node_binding/src/lib.rs +++ b/crates/node_binding/src/lib.rs @@ -19,9 +19,6 @@ mod compiler; mod panic; mod plugins; -#[cfg(not(debug_assertions))] -mod env; - use plugins::*; use rspack_binding_options::*; use rspack_binding_values::*; @@ -184,13 +181,6 @@ enum TraceState { #[ctor] fn init() { - #[cfg(not(debug_assertions))] - { - // 4mb stack size if not set - // For the case where its code has a lot of recursions, for example: - // https://github.com/highlightjs/highlight.js/blob/b9ae5fea90514b864f2c9b2889d7d3302d6156dc/src/languages/isbl.js#L21 - env::set_env_if_unset("RUST_MIN_STACK", "4194304"); - } panic::install_panic_handler(); } diff --git a/crates/rspack_plugin_javascript/src/utils/eval/eval_binary_expr.rs b/crates/rspack_plugin_javascript/src/utils/eval/eval_binary_expr.rs index 9f5d948f132..8fdd118ffa6 100644 --- a/crates/rspack_plugin_javascript/src/utils/eval/eval_binary_expr.rs +++ b/crates/rspack_plugin_javascript/src/utils/eval/eval_binary_expr.rs @@ -1,5 +1,8 @@ use rspack_core::{DependencyLocation, SpanExt}; -use swc_core::ecma::ast::{BinExpr, BinaryOp}; +use swc_core::{ + common::Spanned, + ecma::ast::{BinExpr, BinaryOp}, +}; use crate::{utils::eval::BasicEvaluatedExpression, visitors::JavascriptParser}; @@ -74,11 +77,11 @@ fn is_always_different(a: Option, b: Option) -> bool { #[inline] fn handle_strict_equality_comparison( eql: bool, + left: BasicEvaluatedExpression, expr: &BinExpr, scanner: &mut JavascriptParser, ) -> Option { assert!(expr.op == BinaryOp::EqEqEq || expr.op == BinaryOp::NotEqEq); - let left = scanner.evaluate_expression(&expr.left); let right = scanner.evaluate_expression(&expr.right); let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.hi().0); let left_const = left.is_compile_time_value(); @@ -119,11 +122,11 @@ fn handle_strict_equality_comparison( #[inline(always)] fn handle_abstract_equality_comparison( eql: bool, + left: BasicEvaluatedExpression, expr: &BinExpr, scanner: &mut JavascriptParser, ) -> Option { assert!(expr.op == BinaryOp::EqEq || expr.op == BinaryOp::NotEq); - let left = scanner.evaluate_expression(&expr.left); let right = scanner.evaluate_expression(&expr.right); let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.hi().0); @@ -147,12 +150,11 @@ fn handle_abstract_equality_comparison( #[inline(always)] fn handle_logical_or( + left: BasicEvaluatedExpression, expr: &BinExpr, scanner: &mut JavascriptParser, ) -> Option { let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.hi().0); - let left = scanner.evaluate_expression(&expr.left); - match left.as_bool() { Some(true) => { // truthy || unknown = true @@ -187,12 +189,11 @@ fn handle_logical_or( #[inline(always)] fn handle_logical_and( + left: BasicEvaluatedExpression, expr: &BinExpr, scanner: &mut JavascriptParser, ) -> Option { let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.hi().0); - - let left = scanner.evaluate_expression(&expr.left); match left.as_bool() { Some(true) => { // true && unknown = unknown @@ -226,9 +227,12 @@ fn handle_logical_and( } #[inline(always)] -fn handle_add(expr: &BinExpr, scanner: &mut JavascriptParser) -> Option { +fn handle_add( + left: BasicEvaluatedExpression, + expr: &BinExpr, + scanner: &mut JavascriptParser, +) -> Option { assert_eq!(expr.op, BinaryOp::Add); - let left = scanner.evaluate_expression(&expr.left); let right = scanner.evaluate_expression(&expr.right); let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.hi.0); if left.could_have_side_effects() || right.could_have_side_effects() { @@ -376,21 +380,37 @@ fn handle_add(expr: &BinExpr, scanner: &mut JavascriptParser) -> Option Option { - match expr.op { - BinaryOp::EqEq => handle_abstract_equality_comparison(true, expr, scanner), - BinaryOp::NotEq => handle_abstract_equality_comparison(false, expr, scanner), - BinaryOp::EqEqEq => handle_strict_equality_comparison(true, expr, scanner), - BinaryOp::NotEqEq => handle_strict_equality_comparison(false, expr, scanner), - BinaryOp::LogicalAnd => handle_logical_and(expr, scanner), - BinaryOp::LogicalOr => handle_logical_or(expr, scanner), - BinaryOp::Add => handle_add(expr, scanner), - _ => None, + let mut stack = vec![expr]; + let mut expr = &*expr.left; + while let Some(bin) = expr.as_bin() { + stack.push(bin); + expr = &*bin.left; + } + let mut evaluated = None; + while let Some(expr) = stack.pop() { + let left = evaluated.unwrap_or_else(|| scanner.evaluate_expression(&expr.left)); + evaluated = match expr.op { + BinaryOp::EqEq => handle_abstract_equality_comparison(true, left, expr, scanner), + BinaryOp::NotEq => handle_abstract_equality_comparison(false, left, expr, scanner), + BinaryOp::EqEqEq => handle_strict_equality_comparison(true, left, expr, scanner), + BinaryOp::NotEqEq => handle_strict_equality_comparison(false, left, expr, scanner), + BinaryOp::LogicalAnd => handle_logical_and(left, expr, scanner), + BinaryOp::LogicalOr => handle_logical_or(left, expr, scanner), + BinaryOp::Add => handle_add(left, expr, scanner), + _ => None, + } + .or_else(|| { + Some(BasicEvaluatedExpression::with_range( + expr.span().real_lo(), + expr.span_hi().0, + )) + }); } + evaluated } fn join_locations( diff --git a/crates/rspack_plugin_javascript/src/visitors/dependency/parser/mod.rs b/crates/rspack_plugin_javascript/src/visitors/dependency/parser/mod.rs index 21f73880f4d..b0f07cca3e2 100644 --- a/crates/rspack_plugin_javascript/src/visitors/dependency/parser/mod.rs +++ b/crates/rspack_plugin_javascript/src/visitors/dependency/parser/mod.rs @@ -878,7 +878,6 @@ impl<'parser> JavascriptParser<'parser> { // same as `JavascriptParser._initializeEvaluating` in webpack // FIXME: should mv it to plugin(for example `parse.hooks.evaluate for`) - #[inline] fn evaluating(&mut self, expr: &Expr) -> Option { match expr { Expr::Tpl(tpl) => eval::eval_tpl_expression(self, tpl), diff --git a/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep.js b/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep.js new file mode 100644 index 00000000000..150a6769cf0 --- /dev/null +++ b/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep.js @@ -0,0 +1,1743 @@ +/* +Breaks a Javascript string into individual user-perceived "characters" +called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0 + +Usage: +var splitter = new GraphemeSplitter(); +//returns an array of strings, one string for each grapheme cluster +var graphemes = splitter.splitGraphemes(string); + +*/ +function GraphemeSplitter(){ + var CR = 0, + LF = 1, + Control = 2, + Extend = 3, + Regional_Indicator = 4, + SpacingMark = 5, + L = 6, + V = 7, + T = 8, + LV = 9, + LVT = 10, + Other = 11, + Prepend = 12, + E_Base = 13, + E_Modifier = 14, + ZWJ = 15, + Glue_After_Zwj = 16, + E_Base_GAZ = 17; + + // BreakTypes + var NotBreak = 0, + BreakStart = 1, + Break = 2, + BreakLastRegional = 3, + BreakPenultimateRegional = 4; + + function isSurrogate(str, pos) { + return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff && + 0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff; + } + + // Private function, gets a Unicode code point from a JavaScript UTF-16 string + // handling surrogate pairs appropriately + function codePointAt(str, idx){ + if(idx === undefined){ + idx = 0; + } + var code = str.charCodeAt(idx); + + // if a high surrogate + if (0xD800 <= code && code <= 0xDBFF && + idx < str.length - 1){ + var hi = code; + var low = str.charCodeAt(idx + 1); + if (0xDC00 <= low && low <= 0xDFFF){ + return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; + } + return hi; + } + + // if a low surrogate + if (0xDC00 <= code && code <= 0xDFFF && + idx >= 1){ + var hi = str.charCodeAt(idx - 1); + var low = code; + if (0xD800 <= hi && hi <= 0xDBFF){ + return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000; + } + return low; + } + + //just return the char if an unmatched surrogate half or a + //single-char codepoint + return code; + } + + // Private function, returns whether a break is allowed between the + // two given grapheme breaking classes + function shouldBreak(start, mid, end){ + var all = [start].concat(mid).concat([end]); + var previous = all[all.length - 2] + var next = end + + // Lookahead termintor for: + // GB10. (E_Base | EBG) Extend* ? E_Modifier + var eModifierIndex = all.lastIndexOf(E_Modifier) + if(eModifierIndex > 1 && + all.slice(1, eModifierIndex).every(function(c){return c == Extend}) && + [Extend, E_Base, E_Base_GAZ].indexOf(start) == -1){ + return Break + } + + // Lookahead termintor for: + // GB12. ^ (RI RI)* RI ? RI + // GB13. [^RI] (RI RI)* RI ? RI + var rIIndex = all.lastIndexOf(Regional_Indicator) + if(rIIndex > 0 && + all.slice(1, rIIndex).every(function(c){return c == Regional_Indicator}) && + [Prepend, Regional_Indicator].indexOf(previous) == -1) { + if(all.filter(function(c){return c == Regional_Indicator}).length % 2 == 1) { + return BreakLastRegional + } + else { + return BreakPenultimateRegional + } + } + + // GB3. CR X LF + if(previous == CR && next == LF){ + return NotBreak; + } + // GB4. (Control|CR|LF) ÷ + else if(previous == Control || previous == CR || previous == LF){ + if(next == E_Modifier && mid.every(function(c){return c == Extend})){ + return Break + } + else { + return BreakStart + } + } + // GB5. ÷ (Control|CR|LF) + else if(next == Control || next == CR || next == LF){ + return BreakStart; + } + // GB6. L X (L|V|LV|LVT) + else if(previous == L && + (next == L || next == V || next == LV || next == LVT)){ + return NotBreak; + } + // GB7. (LV|V) X (V|T) + else if((previous == LV || previous == V) && + (next == V || next == T)){ + return NotBreak; + } + // GB8. (LVT|T) X (T) + else if((previous == LVT || previous == T) && + next == T){ + return NotBreak; + } + // GB9. X (Extend|ZWJ) + else if (next == Extend || next == ZWJ){ + return NotBreak; + } + // GB9a. X SpacingMark + else if(next == SpacingMark){ + return NotBreak; + } + // GB9b. Prepend X + else if (previous == Prepend){ + return NotBreak; + } + + // GB10. (E_Base | EBG) Extend* ? E_Modifier + var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2; + if([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 && + all.slice(previousNonExtendIndex + 1, -1).every(function(c){return c == Extend}) && + next == E_Modifier){ + return NotBreak; + } + + // GB11. ZWJ ? (Glue_After_Zwj | EBG) + if(previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) { + return NotBreak; + } + + // GB12. ^ (RI RI)* RI ? RI + // GB13. [^RI] (RI RI)* RI ? RI + if(mid.indexOf(Regional_Indicator) != -1) { + return Break; + } + if(previous == Regional_Indicator && next == Regional_Indicator) { + return NotBreak; + } + + // GB999. Any ? Any + return BreakStart; + } + + // Returns the next grapheme break in the string after the given index + this.nextBreak = function(string, index){ + if(index === undefined){ + index = 0; + } + if(index < 0){ + return 0; + } + if(index >= string.length - 1){ + return string.length; + } + var prev = getGraphemeBreakProperty(codePointAt(string, index)); + var mid = [] + for (var i = index + 1; i < string.length; i++) { + // check for already processed low surrogates + if(isSurrogate(string, i - 1)){ + continue; + } + + var next = getGraphemeBreakProperty(codePointAt(string, i)); + if(shouldBreak(prev, mid, next)){ + return i; + } + + mid.push(next); + } + return string.length; + }; + + // Breaks the given string into an array of grapheme cluster strings + this.splitGraphemes = function(str){ + var res = []; + var index = 0; + var brk; + while((brk = this.nextBreak(str, index)) < str.length){ + res.push(str.slice(index, brk)); + index = brk; + } + if(index < str.length){ + res.push(str.slice(index)); + } + return res; + }; + + // Returns the iterator of grapheme clusters there are in the given string + this.iterateGraphemes = function(str) { + var index = 0; + var res = { + next: (function() { + var value; + var brk; + if ((brk = this.nextBreak(str, index)) < str.length) { + value = str.slice(index, brk); + index = brk; + return { value: value, done: false }; + } + if (index < str.length) { + value = str.slice(index); + index = str.length; + return { value: value, done: false }; + } + return { value: undefined, done: true }; + }).bind(this) + }; + // ES2015 @@iterator method (iterable) for spread syntax and for...of statement + if (typeof Symbol !== 'undefined' && Symbol.iterator) { + res[Symbol.iterator] = function() {return res}; + } + return res; + }; + + // Returns the number of grapheme clusters there are in the given string + this.countGraphemes = function(str){ + var count = 0; + var index = 0; + var brk; + while((brk = this.nextBreak(str, index)) < str.length){ + index = brk; + count++; + } + if(index < str.length){ + count++; + } + return count; + }; + + //given a Unicode code point, determines this symbol's grapheme break property + function getGraphemeBreakProperty(code){ + + //grapheme break property for Unicode 10.0.0, + //taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt + //and adapted to JavaScript rules + + if( + (0x0600 <= code && code <= 0x0605) || // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE + 0x06DD == code || // Cf ARABIC END OF AYAH + 0x070F == code || // Cf SYRIAC ABBREVIATION MARK + 0x08E2 == code || // Cf ARABIC DISPUTED END OF AYAH + 0x0D4E == code || // Lo MALAYALAM LETTER DOT REPH + 0x110BD == code || // Cf KAITHI NUMBER SIGN + (0x111C2 <= code && code <= 0x111C3) || // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA + 0x11A3A == code || // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA + (0x11A86 <= code && code <= 0x11A89) || // Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA + 0x11D46 == code // Lo MASARAM GONDI REPHA + ){ + return Prepend; + } + if( + 0x000D == code // Cc + ){ + return CR; + } + + if( + 0x000A == code // Cc + ){ + return LF; + } + + + if( + (0x0000 <= code && code <= 0x0009) || // Cc [10] .. + (0x000B <= code && code <= 0x000C) || // Cc [2] .. + (0x000E <= code && code <= 0x001F) || // Cc [18] .. + (0x007F <= code && code <= 0x009F) || // Cc [33] .. + 0x00AD == code || // Cf SOFT HYPHEN + 0x061C == code || // Cf ARABIC LETTER MARK + + 0x180E == code || // Cf MONGOLIAN VOWEL SEPARATOR + 0x200B == code || // Cf ZERO WIDTH SPACE + (0x200E <= code && code <= 0x200F) || // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK + 0x2028 == code || // Zl LINE SEPARATOR + 0x2029 == code || // Zp PARAGRAPH SEPARATOR + (0x202A <= code && code <= 0x202E) || // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + (0x2060 <= code && code <= 0x2064) || // Cf [5] WORD JOINER..INVISIBLE PLUS + 0x2065 == code || // Cn + (0x2066 <= code && code <= 0x206F) || // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES + (0xD800 <= code && code <= 0xDFFF) || // Cs [2048] .. + 0xFEFF == code || // Cf ZERO WIDTH NO-BREAK SPACE + (0xFFF0 <= code && code <= 0xFFF8) || // Cn [9] .. + (0xFFF9 <= code && code <= 0xFFFB) || // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR + (0x1BCA0 <= code && code <= 0x1BCA3) || // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + (0x1D173 <= code && code <= 0x1D17A) || // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE + 0xE0000 == code || // Cn + 0xE0001 == code || // Cf LANGUAGE TAG + (0xE0002 <= code && code <= 0xE001F) || // Cn [30] .. + (0xE0080 <= code && code <= 0xE00FF) || // Cn [128] .. + (0xE01F0 <= code && code <= 0xE0FFF) // Cn [3600] .. + ){ + return Control; + } + + + if( + (0x0300 <= code && code <= 0x036F) || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X + (0x0483 <= code && code <= 0x0487) || // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE + (0x0488 <= code && code <= 0x0489) || // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN + (0x0591 <= code && code <= 0x05BD) || // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG + 0x05BF == code || // Mn HEBREW POINT RAFE + (0x05C1 <= code && code <= 0x05C2) || // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT + (0x05C4 <= code && code <= 0x05C5) || // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT + 0x05C7 == code || // Mn HEBREW POINT QAMATS QATAN + (0x0610 <= code && code <= 0x061A) || // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA + (0x064B <= code && code <= 0x065F) || // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW + 0x0670 == code || // Mn ARABIC LETTER SUPERSCRIPT ALEF + (0x06D6 <= code && code <= 0x06DC) || // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN + (0x06DF <= code && code <= 0x06E4) || // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA + (0x06E7 <= code && code <= 0x06E8) || // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON + (0x06EA <= code && code <= 0x06ED) || // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM + 0x0711 == code || // Mn SYRIAC LETTER SUPERSCRIPT ALAPH + (0x0730 <= code && code <= 0x074A) || // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH + (0x07A6 <= code && code <= 0x07B0) || // Mn [11] THAANA ABAFILI..THAANA SUKUN + (0x07EB <= code && code <= 0x07F3) || // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE + (0x0816 <= code && code <= 0x0819) || // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH + (0x081B <= code && code <= 0x0823) || // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A + (0x0825 <= code && code <= 0x0827) || // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U + (0x0829 <= code && code <= 0x082D) || // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA + (0x0859 <= code && code <= 0x085B) || // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK + (0x08D4 <= code && code <= 0x08E1) || // Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA + (0x08E3 <= code && code <= 0x0902) || // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + 0x093A == code || // Mn DEVANAGARI VOWEL SIGN OE + 0x093C == code || // Mn DEVANAGARI SIGN NUKTA + (0x0941 <= code && code <= 0x0948) || // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI + 0x094D == code || // Mn DEVANAGARI SIGN VIRAMA + (0x0951 <= code && code <= 0x0957) || // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE + (0x0962 <= code && code <= 0x0963) || // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL + 0x0981 == code || // Mn BENGALI SIGN CANDRABINDU + 0x09BC == code || // Mn BENGALI SIGN NUKTA + 0x09BE == code || // Mc BENGALI VOWEL SIGN AA + (0x09C1 <= code && code <= 0x09C4) || // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR + 0x09CD == code || // Mn BENGALI SIGN VIRAMA + 0x09D7 == code || // Mc BENGALI AU LENGTH MARK + (0x09E2 <= code && code <= 0x09E3) || // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL + (0x0A01 <= code && code <= 0x0A02) || // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI + 0x0A3C == code || // Mn GURMUKHI SIGN NUKTA + (0x0A41 <= code && code <= 0x0A42) || // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU + (0x0A47 <= code && code <= 0x0A48) || // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI + (0x0A4B <= code && code <= 0x0A4D) || // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA + 0x0A51 == code || // Mn GURMUKHI SIGN UDAAT + (0x0A70 <= code && code <= 0x0A71) || // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK + 0x0A75 == code || // Mn GURMUKHI SIGN YAKASH + (0x0A81 <= code && code <= 0x0A82) || // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA + 0x0ABC == code || // Mn GUJARATI SIGN NUKTA + (0x0AC1 <= code && code <= 0x0AC5) || // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E + (0x0AC7 <= code && code <= 0x0AC8) || // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI + 0x0ACD == code || // Mn GUJARATI SIGN VIRAMA + (0x0AE2 <= code && code <= 0x0AE3) || // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL + (0x0AFA <= code && code <= 0x0AFF) || // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE + 0x0B01 == code || // Mn ORIYA SIGN CANDRABINDU + 0x0B3C == code || // Mn ORIYA SIGN NUKTA + 0x0B3E == code || // Mc ORIYA VOWEL SIGN AA + 0x0B3F == code || // Mn ORIYA VOWEL SIGN I + (0x0B41 <= code && code <= 0x0B44) || // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR + 0x0B4D == code || // Mn ORIYA SIGN VIRAMA + 0x0B56 == code || // Mn ORIYA AI LENGTH MARK + 0x0B57 == code || // Mc ORIYA AU LENGTH MARK + (0x0B62 <= code && code <= 0x0B63) || // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL + 0x0B82 == code || // Mn TAMIL SIGN ANUSVARA + 0x0BBE == code || // Mc TAMIL VOWEL SIGN AA + 0x0BC0 == code || // Mn TAMIL VOWEL SIGN II + 0x0BCD == code || // Mn TAMIL SIGN VIRAMA + 0x0BD7 == code || // Mc TAMIL AU LENGTH MARK + 0x0C00 == code || // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE + (0x0C3E <= code && code <= 0x0C40) || // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II + (0x0C46 <= code && code <= 0x0C48) || // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI + (0x0C4A <= code && code <= 0x0C4D) || // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA + (0x0C55 <= code && code <= 0x0C56) || // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK + (0x0C62 <= code && code <= 0x0C63) || // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL + 0x0C81 == code || // Mn KANNADA SIGN CANDRABINDU + 0x0CBC == code || // Mn KANNADA SIGN NUKTA + 0x0CBF == code || // Mn KANNADA VOWEL SIGN I + 0x0CC2 == code || // Mc KANNADA VOWEL SIGN UU + 0x0CC6 == code || // Mn KANNADA VOWEL SIGN E + (0x0CCC <= code && code <= 0x0CCD) || // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA + (0x0CD5 <= code && code <= 0x0CD6) || // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK + (0x0CE2 <= code && code <= 0x0CE3) || // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL + (0x0D00 <= code && code <= 0x0D01) || // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU + (0x0D3B <= code && code <= 0x0D3C) || // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA + 0x0D3E == code || // Mc MALAYALAM VOWEL SIGN AA + (0x0D41 <= code && code <= 0x0D44) || // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR + 0x0D4D == code || // Mn MALAYALAM SIGN VIRAMA + 0x0D57 == code || // Mc MALAYALAM AU LENGTH MARK + (0x0D62 <= code && code <= 0x0D63) || // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL + 0x0DCA == code || // Mn SINHALA SIGN AL-LAKUNA + 0x0DCF == code || // Mc SINHALA VOWEL SIGN AELA-PILLA + (0x0DD2 <= code && code <= 0x0DD4) || // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA + 0x0DD6 == code || // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA + 0x0DDF == code || // Mc SINHALA VOWEL SIGN GAYANUKITTA + 0x0E31 == code || // Mn THAI CHARACTER MAI HAN-AKAT + (0x0E34 <= code && code <= 0x0E3A) || // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU + (0x0E47 <= code && code <= 0x0E4E) || // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN + 0x0EB1 == code || // Mn LAO VOWEL SIGN MAI KAN + (0x0EB4 <= code && code <= 0x0EB9) || // Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU + (0x0EBB <= code && code <= 0x0EBC) || // Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO + (0x0EC8 <= code && code <= 0x0ECD) || // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA + (0x0F18 <= code && code <= 0x0F19) || // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS + 0x0F35 == code || // Mn TIBETAN MARK NGAS BZUNG NYI ZLA + 0x0F37 == code || // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS + 0x0F39 == code || // Mn TIBETAN MARK TSA -PHRU + (0x0F71 <= code && code <= 0x0F7E) || // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO + (0x0F80 <= code && code <= 0x0F84) || // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA + (0x0F86 <= code && code <= 0x0F87) || // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS + (0x0F8D <= code && code <= 0x0F97) || // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA + (0x0F99 <= code && code <= 0x0FBC) || // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA + 0x0FC6 == code || // Mn TIBETAN SYMBOL PADMA GDAN + (0x102D <= code && code <= 0x1030) || // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU + (0x1032 <= code && code <= 0x1037) || // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW + (0x1039 <= code && code <= 0x103A) || // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT + (0x103D <= code && code <= 0x103E) || // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA + (0x1058 <= code && code <= 0x1059) || // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL + (0x105E <= code && code <= 0x1060) || // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA + (0x1071 <= code && code <= 0x1074) || // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE + 0x1082 == code || // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA + (0x1085 <= code && code <= 0x1086) || // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y + 0x108D == code || // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE + 0x109D == code || // Mn MYANMAR VOWEL SIGN AITON AI + (0x135D <= code && code <= 0x135F) || // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK + (0x1712 <= code && code <= 0x1714) || // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA + (0x1732 <= code && code <= 0x1734) || // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD + (0x1752 <= code && code <= 0x1753) || // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U + (0x1772 <= code && code <= 0x1773) || // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U + (0x17B4 <= code && code <= 0x17B5) || // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA + (0x17B7 <= code && code <= 0x17BD) || // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA + 0x17C6 == code || // Mn KHMER SIGN NIKAHIT + (0x17C9 <= code && code <= 0x17D3) || // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT + 0x17DD == code || // Mn KHMER SIGN ATTHACAN + (0x180B <= code && code <= 0x180D) || // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE + (0x1885 <= code && code <= 0x1886) || // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA + 0x18A9 == code || // Mn MONGOLIAN LETTER ALI GALI DAGALGA + (0x1920 <= code && code <= 0x1922) || // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U + (0x1927 <= code && code <= 0x1928) || // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O + 0x1932 == code || // Mn LIMBU SMALL LETTER ANUSVARA + (0x1939 <= code && code <= 0x193B) || // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I + (0x1A17 <= code && code <= 0x1A18) || // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U + 0x1A1B == code || // Mn BUGINESE VOWEL SIGN AE + 0x1A56 == code || // Mn TAI THAM CONSONANT SIGN MEDIAL LA + (0x1A58 <= code && code <= 0x1A5E) || // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA + 0x1A60 == code || // Mn TAI THAM SIGN SAKOT + 0x1A62 == code || // Mn TAI THAM VOWEL SIGN MAI SAT + (0x1A65 <= code && code <= 0x1A6C) || // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW + (0x1A73 <= code && code <= 0x1A7C) || // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN + 0x1A7F == code || // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT + (0x1AB0 <= code && code <= 0x1ABD) || // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW + 0x1ABE == code || // Me COMBINING PARENTHESES OVERLAY + (0x1B00 <= code && code <= 0x1B03) || // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG + 0x1B34 == code || // Mn BALINESE SIGN REREKAN + (0x1B36 <= code && code <= 0x1B3A) || // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA + 0x1B3C == code || // Mn BALINESE VOWEL SIGN LA LENGA + 0x1B42 == code || // Mn BALINESE VOWEL SIGN PEPET + (0x1B6B <= code && code <= 0x1B73) || // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG + (0x1B80 <= code && code <= 0x1B81) || // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR + (0x1BA2 <= code && code <= 0x1BA5) || // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU + (0x1BA8 <= code && code <= 0x1BA9) || // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG + (0x1BAB <= code && code <= 0x1BAD) || // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA + 0x1BE6 == code || // Mn BATAK SIGN TOMPI + (0x1BE8 <= code && code <= 0x1BE9) || // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE + 0x1BED == code || // Mn BATAK VOWEL SIGN KARO O + (0x1BEF <= code && code <= 0x1BF1) || // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H + (0x1C2C <= code && code <= 0x1C33) || // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T + (0x1C36 <= code && code <= 0x1C37) || // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA + (0x1CD0 <= code && code <= 0x1CD2) || // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA + (0x1CD4 <= code && code <= 0x1CE0) || // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + (0x1CE2 <= code && code <= 0x1CE8) || // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL + 0x1CED == code || // Mn VEDIC SIGN TIRYAK + 0x1CF4 == code || // Mn VEDIC TONE CANDRA ABOVE + (0x1CF8 <= code && code <= 0x1CF9) || // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE + (0x1DC0 <= code && code <= 0x1DF9) || // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW + (0x1DFB <= code && code <= 0x1DFF) || // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + 0x200C == code || // Cf ZERO WIDTH NON-JOINER + (0x20D0 <= code && code <= 0x20DC) || // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE + (0x20DD <= code && code <= 0x20E0) || // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH + 0x20E1 == code || // Mn COMBINING LEFT RIGHT ARROW ABOVE + (0x20E2 <= code && code <= 0x20E4) || // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE + (0x20E5 <= code && code <= 0x20F0) || // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE + (0x2CEF <= code && code <= 0x2CF1) || // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS + 0x2D7F == code || // Mn TIFINAGH CONSONANT JOINER + (0x2DE0 <= code && code <= 0x2DFF) || // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS + (0x302A <= code && code <= 0x302D) || // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK + (0x302E <= code && code <= 0x302F) || // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK + (0x3099 <= code && code <= 0x309A) || // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + 0xA66F == code || // Mn COMBINING CYRILLIC VZMET + (0xA670 <= code && code <= 0xA672) || // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN + (0xA674 <= code && code <= 0xA67D) || // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK + (0xA69E <= code && code <= 0xA69F) || // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E + (0xA6F0 <= code && code <= 0xA6F1) || // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS + 0xA802 == code || // Mn SYLOTI NAGRI SIGN DVISVARA + 0xA806 == code || // Mn SYLOTI NAGRI SIGN HASANTA + 0xA80B == code || // Mn SYLOTI NAGRI SIGN ANUSVARA + (0xA825 <= code && code <= 0xA826) || // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E + (0xA8C4 <= code && code <= 0xA8C5) || // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + (0xA8E0 <= code && code <= 0xA8F1) || // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + (0xA926 <= code && code <= 0xA92D) || // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU + (0xA947 <= code && code <= 0xA951) || // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R + (0xA980 <= code && code <= 0xA982) || // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR + 0xA9B3 == code || // Mn JAVANESE SIGN CECAK TELU + (0xA9B6 <= code && code <= 0xA9B9) || // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT + 0xA9BC == code || // Mn JAVANESE VOWEL SIGN PEPET + 0xA9E5 == code || // Mn MYANMAR SIGN SHAN SAW + (0xAA29 <= code && code <= 0xAA2E) || // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE + (0xAA31 <= code && code <= 0xAA32) || // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE + (0xAA35 <= code && code <= 0xAA36) || // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA + 0xAA43 == code || // Mn CHAM CONSONANT SIGN FINAL NG + 0xAA4C == code || // Mn CHAM CONSONANT SIGN FINAL M + 0xAA7C == code || // Mn MYANMAR SIGN TAI LAING TONE-2 + 0xAAB0 == code || // Mn TAI VIET MAI KANG + (0xAAB2 <= code && code <= 0xAAB4) || // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U + (0xAAB7 <= code && code <= 0xAAB8) || // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA + (0xAABE <= code && code <= 0xAABF) || // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK + 0xAAC1 == code || // Mn TAI VIET TONE MAI THO + (0xAAEC <= code && code <= 0xAAED) || // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI + 0xAAF6 == code || // Mn MEETEI MAYEK VIRAMA + 0xABE5 == code || // Mn MEETEI MAYEK VOWEL SIGN ANAP + 0xABE8 == code || // Mn MEETEI MAYEK VOWEL SIGN UNAP + 0xABED == code || // Mn MEETEI MAYEK APUN IYEK + 0xFB1E == code || // Mn HEBREW POINT JUDEO-SPANISH VARIKA + (0xFE00 <= code && code <= 0xFE0F) || // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 + (0xFE20 <= code && code <= 0xFE2F) || // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF + (0xFF9E <= code && code <= 0xFF9F) || // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK + 0x101FD == code || // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE + 0x102E0 == code || // Mn COPTIC EPACT THOUSANDS MARK + (0x10376 <= code && code <= 0x1037A) || // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII + (0x10A01 <= code && code <= 0x10A03) || // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R + (0x10A05 <= code && code <= 0x10A06) || // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O + (0x10A0C <= code && code <= 0x10A0F) || // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA + (0x10A38 <= code && code <= 0x10A3A) || // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW + 0x10A3F == code || // Mn KHAROSHTHI VIRAMA + (0x10AE5 <= code && code <= 0x10AE6) || // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW + 0x11001 == code || // Mn BRAHMI SIGN ANUSVARA + (0x11038 <= code && code <= 0x11046) || // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA + (0x1107F <= code && code <= 0x11081) || // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA + (0x110B3 <= code && code <= 0x110B6) || // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI + (0x110B9 <= code && code <= 0x110BA) || // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA + (0x11100 <= code && code <= 0x11102) || // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA + (0x11127 <= code && code <= 0x1112B) || // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU + (0x1112D <= code && code <= 0x11134) || // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA + 0x11173 == code || // Mn MAHAJANI SIGN NUKTA + (0x11180 <= code && code <= 0x11181) || // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA + (0x111B6 <= code && code <= 0x111BE) || // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O + (0x111CA <= code && code <= 0x111CC) || // Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK + (0x1122F <= code && code <= 0x11231) || // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI + 0x11234 == code || // Mn KHOJKI SIGN ANUSVARA + (0x11236 <= code && code <= 0x11237) || // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA + 0x1123E == code || // Mn KHOJKI SIGN SUKUN + 0x112DF == code || // Mn KHUDAWADI SIGN ANUSVARA + (0x112E3 <= code && code <= 0x112EA) || // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA + (0x11300 <= code && code <= 0x11301) || // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU + 0x1133C == code || // Mn GRANTHA SIGN NUKTA + 0x1133E == code || // Mc GRANTHA VOWEL SIGN AA + 0x11340 == code || // Mn GRANTHA VOWEL SIGN II + 0x11357 == code || // Mc GRANTHA AU LENGTH MARK + (0x11366 <= code && code <= 0x1136C) || // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + (0x11370 <= code && code <= 0x11374) || // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA + (0x11438 <= code && code <= 0x1143F) || // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI + (0x11442 <= code && code <= 0x11444) || // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA + 0x11446 == code || // Mn NEWA SIGN NUKTA + 0x114B0 == code || // Mc TIRHUTA VOWEL SIGN AA + (0x114B3 <= code && code <= 0x114B8) || // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL + 0x114BA == code || // Mn TIRHUTA VOWEL SIGN SHORT E + 0x114BD == code || // Mc TIRHUTA VOWEL SIGN SHORT O + (0x114BF <= code && code <= 0x114C0) || // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA + (0x114C2 <= code && code <= 0x114C3) || // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA + 0x115AF == code || // Mc SIDDHAM VOWEL SIGN AA + (0x115B2 <= code && code <= 0x115B5) || // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR + (0x115BC <= code && code <= 0x115BD) || // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA + (0x115BF <= code && code <= 0x115C0) || // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA + (0x115DC <= code && code <= 0x115DD) || // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU + (0x11633 <= code && code <= 0x1163A) || // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI + 0x1163D == code || // Mn MODI SIGN ANUSVARA + (0x1163F <= code && code <= 0x11640) || // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA + 0x116AB == code || // Mn TAKRI SIGN ANUSVARA + 0x116AD == code || // Mn TAKRI VOWEL SIGN AA + (0x116B0 <= code && code <= 0x116B5) || // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU + 0x116B7 == code || // Mn TAKRI SIGN NUKTA + (0x1171D <= code && code <= 0x1171F) || // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA + (0x11722 <= code && code <= 0x11725) || // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU + (0x11727 <= code && code <= 0x1172B) || // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER + (0x11A01 <= code && code <= 0x11A06) || // Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O + (0x11A09 <= code && code <= 0x11A0A) || // Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK + (0x11A33 <= code && code <= 0x11A38) || // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA + (0x11A3B <= code && code <= 0x11A3E) || // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA + 0x11A47 == code || // Mn ZANABAZAR SQUARE SUBJOINER + (0x11A51 <= code && code <= 0x11A56) || // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE + (0x11A59 <= code && code <= 0x11A5B) || // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK + (0x11A8A <= code && code <= 0x11A96) || // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA + (0x11A98 <= code && code <= 0x11A99) || // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER + (0x11C30 <= code && code <= 0x11C36) || // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L + (0x11C38 <= code && code <= 0x11C3D) || // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA + 0x11C3F == code || // Mn BHAIKSUKI SIGN VIRAMA + (0x11C92 <= code && code <= 0x11CA7) || // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA + (0x11CAA <= code && code <= 0x11CB0) || // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA + (0x11CB2 <= code && code <= 0x11CB3) || // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E + (0x11CB5 <= code && code <= 0x11CB6) || // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + (0x11D31 <= code && code <= 0x11D36) || // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R + 0x11D3A == code || // Mn MASARAM GONDI VOWEL SIGN E + (0x11D3C <= code && code <= 0x11D3D) || // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O + (0x11D3F <= code && code <= 0x11D45) || // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA + 0x11D47 == code || // Mn MASARAM GONDI RA-KARA + (0x16AF0 <= code && code <= 0x16AF4) || // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE + (0x16B30 <= code && code <= 0x16B36) || // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM + (0x16F8F <= code && code <= 0x16F92) || // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + (0x1BC9D <= code && code <= 0x1BC9E) || // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK + 0x1D165 == code || // Mc MUSICAL SYMBOL COMBINING STEM + (0x1D167 <= code && code <= 0x1D169) || // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 + (0x1D16E <= code && code <= 0x1D172) || // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 + (0x1D17B <= code && code <= 0x1D182) || // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE + (0x1D185 <= code && code <= 0x1D18B) || // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE + (0x1D1AA <= code && code <= 0x1D1AD) || // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO + (0x1D242 <= code && code <= 0x1D244) || // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME + (0x1DA00 <= code && code <= 0x1DA36) || // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN + (0x1DA3B <= code && code <= 0x1DA6C) || // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT + 0x1DA75 == code || // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS + 0x1DA84 == code || // Mn SIGNWRITING LOCATION HEAD NECK + (0x1DA9B <= code && code <= 0x1DA9F) || // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + (0x1DAA1 <= code && code <= 0x1DAAF) || // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 + (0x1E000 <= code && code <= 0x1E006) || // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE + (0x1E008 <= code && code <= 0x1E018) || // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU + (0x1E01B <= code && code <= 0x1E021) || // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI + (0x1E023 <= code && code <= 0x1E024) || // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS + (0x1E026 <= code && code <= 0x1E02A) || // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + (0x1E8D0 <= code && code <= 0x1E8D6) || // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS + (0x1E944 <= code && code <= 0x1E94A) || // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA + (0xE0020 <= code && code <= 0xE007F) || // Cf [96] TAG SPACE..CANCEL TAG + (0xE0100 <= code && code <= 0xE01EF) // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + ){ + return Extend; + } + + + if( + (0x1F1E6 <= code && code <= 0x1F1FF) // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z + ){ + return Regional_Indicator; + } + + if( + 0x0903 == code || // Mc DEVANAGARI SIGN VISARGA + 0x093B == code || // Mc DEVANAGARI VOWEL SIGN OOE + (0x093E <= code && code <= 0x0940) || // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II + (0x0949 <= code && code <= 0x094C) || // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU + (0x094E <= code && code <= 0x094F) || // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW + (0x0982 <= code && code <= 0x0983) || // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA + (0x09BF <= code && code <= 0x09C0) || // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II + (0x09C7 <= code && code <= 0x09C8) || // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI + (0x09CB <= code && code <= 0x09CC) || // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU + 0x0A03 == code || // Mc GURMUKHI SIGN VISARGA + (0x0A3E <= code && code <= 0x0A40) || // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II + 0x0A83 == code || // Mc GUJARATI SIGN VISARGA + (0x0ABE <= code && code <= 0x0AC0) || // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II + 0x0AC9 == code || // Mc GUJARATI VOWEL SIGN CANDRA O + (0x0ACB <= code && code <= 0x0ACC) || // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU + (0x0B02 <= code && code <= 0x0B03) || // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA + 0x0B40 == code || // Mc ORIYA VOWEL SIGN II + (0x0B47 <= code && code <= 0x0B48) || // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI + (0x0B4B <= code && code <= 0x0B4C) || // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU + 0x0BBF == code || // Mc TAMIL VOWEL SIGN I + (0x0BC1 <= code && code <= 0x0BC2) || // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU + (0x0BC6 <= code && code <= 0x0BC8) || // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI + (0x0BCA <= code && code <= 0x0BCC) || // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU + (0x0C01 <= code && code <= 0x0C03) || // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA + (0x0C41 <= code && code <= 0x0C44) || // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR + (0x0C82 <= code && code <= 0x0C83) || // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + 0x0CBE == code || // Mc KANNADA VOWEL SIGN AA + (0x0CC0 <= code && code <= 0x0CC1) || // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U + (0x0CC3 <= code && code <= 0x0CC4) || // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR + (0x0CC7 <= code && code <= 0x0CC8) || // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI + (0x0CCA <= code && code <= 0x0CCB) || // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO + (0x0D02 <= code && code <= 0x0D03) || // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA + (0x0D3F <= code && code <= 0x0D40) || // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II + (0x0D46 <= code && code <= 0x0D48) || // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI + (0x0D4A <= code && code <= 0x0D4C) || // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + (0x0D82 <= code && code <= 0x0D83) || // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA + (0x0DD0 <= code && code <= 0x0DD1) || // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA + (0x0DD8 <= code && code <= 0x0DDE) || // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA + (0x0DF2 <= code && code <= 0x0DF3) || // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA + 0x0E33 == code || // Lo THAI CHARACTER SARA AM + 0x0EB3 == code || // Lo LAO VOWEL SIGN AM + (0x0F3E <= code && code <= 0x0F3F) || // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES + 0x0F7F == code || // Mc TIBETAN SIGN RNAM BCAD + 0x1031 == code || // Mc MYANMAR VOWEL SIGN E + (0x103B <= code && code <= 0x103C) || // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA + (0x1056 <= code && code <= 0x1057) || // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR + 0x1084 == code || // Mc MYANMAR VOWEL SIGN SHAN E + 0x17B6 == code || // Mc KHMER VOWEL SIGN AA + (0x17BE <= code && code <= 0x17C5) || // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU + (0x17C7 <= code && code <= 0x17C8) || // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU + (0x1923 <= code && code <= 0x1926) || // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU + (0x1929 <= code && code <= 0x192B) || // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA + (0x1930 <= code && code <= 0x1931) || // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA + (0x1933 <= code && code <= 0x1938) || // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA + (0x1A19 <= code && code <= 0x1A1A) || // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O + 0x1A55 == code || // Mc TAI THAM CONSONANT SIGN MEDIAL RA + 0x1A57 == code || // Mc TAI THAM CONSONANT SIGN LA TANG LAI + (0x1A6D <= code && code <= 0x1A72) || // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI + 0x1B04 == code || // Mc BALINESE SIGN BISAH + 0x1B35 == code || // Mc BALINESE VOWEL SIGN TEDUNG + 0x1B3B == code || // Mc BALINESE VOWEL SIGN RA REPA TEDUNG + (0x1B3D <= code && code <= 0x1B41) || // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG + (0x1B43 <= code && code <= 0x1B44) || // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG + 0x1B82 == code || // Mc SUNDANESE SIGN PANGWISAD + 0x1BA1 == code || // Mc SUNDANESE CONSONANT SIGN PAMINGKAL + (0x1BA6 <= code && code <= 0x1BA7) || // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG + 0x1BAA == code || // Mc SUNDANESE SIGN PAMAAEH + 0x1BE7 == code || // Mc BATAK VOWEL SIGN E + (0x1BEA <= code && code <= 0x1BEC) || // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O + 0x1BEE == code || // Mc BATAK VOWEL SIGN U + (0x1BF2 <= code && code <= 0x1BF3) || // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN + (0x1C24 <= code && code <= 0x1C2B) || // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU + (0x1C34 <= code && code <= 0x1C35) || // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG + 0x1CE1 == code || // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA + (0x1CF2 <= code && code <= 0x1CF3) || // Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA + 0x1CF7 == code || // Mc VEDIC SIGN ATIKRAMA + (0xA823 <= code && code <= 0xA824) || // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I + 0xA827 == code || // Mc SYLOTI NAGRI VOWEL SIGN OO + (0xA880 <= code && code <= 0xA881) || // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + (0xA8B4 <= code && code <= 0xA8C3) || // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU + (0xA952 <= code && code <= 0xA953) || // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA + 0xA983 == code || // Mc JAVANESE SIGN WIGNYAN + (0xA9B4 <= code && code <= 0xA9B5) || // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG + (0xA9BA <= code && code <= 0xA9BB) || // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE + (0xA9BD <= code && code <= 0xA9C0) || // Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON + (0xAA2F <= code && code <= 0xAA30) || // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI + (0xAA33 <= code && code <= 0xAA34) || // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA + 0xAA4D == code || // Mc CHAM CONSONANT SIGN FINAL H + 0xAAEB == code || // Mc MEETEI MAYEK VOWEL SIGN II + (0xAAEE <= code && code <= 0xAAEF) || // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU + 0xAAF5 == code || // Mc MEETEI MAYEK VOWEL SIGN VISARGA + (0xABE3 <= code && code <= 0xABE4) || // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP + (0xABE6 <= code && code <= 0xABE7) || // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP + (0xABE9 <= code && code <= 0xABEA) || // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG + 0xABEC == code || // Mc MEETEI MAYEK LUM IYEK + 0x11000 == code || // Mc BRAHMI SIGN CANDRABINDU + 0x11002 == code || // Mc BRAHMI SIGN VISARGA + 0x11082 == code || // Mc KAITHI SIGN VISARGA + (0x110B0 <= code && code <= 0x110B2) || // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II + (0x110B7 <= code && code <= 0x110B8) || // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU + 0x1112C == code || // Mc CHAKMA VOWEL SIGN E + 0x11182 == code || // Mc SHARADA SIGN VISARGA + (0x111B3 <= code && code <= 0x111B5) || // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II + (0x111BF <= code && code <= 0x111C0) || // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA + (0x1122C <= code && code <= 0x1122E) || // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II + (0x11232 <= code && code <= 0x11233) || // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU + 0x11235 == code || // Mc KHOJKI SIGN VIRAMA + (0x112E0 <= code && code <= 0x112E2) || // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II + (0x11302 <= code && code <= 0x11303) || // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA + 0x1133F == code || // Mc GRANTHA VOWEL SIGN I + (0x11341 <= code && code <= 0x11344) || // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR + (0x11347 <= code && code <= 0x11348) || // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI + (0x1134B <= code && code <= 0x1134D) || // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA + (0x11362 <= code && code <= 0x11363) || // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL + (0x11435 <= code && code <= 0x11437) || // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II + (0x11440 <= code && code <= 0x11441) || // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU + 0x11445 == code || // Mc NEWA SIGN VISARGA + (0x114B1 <= code && code <= 0x114B2) || // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II + 0x114B9 == code || // Mc TIRHUTA VOWEL SIGN E + (0x114BB <= code && code <= 0x114BC) || // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O + 0x114BE == code || // Mc TIRHUTA VOWEL SIGN AU + 0x114C1 == code || // Mc TIRHUTA SIGN VISARGA + (0x115B0 <= code && code <= 0x115B1) || // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II + (0x115B8 <= code && code <= 0x115BB) || // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU + 0x115BE == code || // Mc SIDDHAM SIGN VISARGA + (0x11630 <= code && code <= 0x11632) || // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II + (0x1163B <= code && code <= 0x1163C) || // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU + 0x1163E == code || // Mc MODI SIGN VISARGA + 0x116AC == code || // Mc TAKRI SIGN VISARGA + (0x116AE <= code && code <= 0x116AF) || // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II + 0x116B6 == code || // Mc TAKRI SIGN VIRAMA + (0x11720 <= code && code <= 0x11721) || // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA + 0x11726 == code || // Mc AHOM VOWEL SIGN E + (0x11A07 <= code && code <= 0x11A08) || // Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU + 0x11A39 == code || // Mc ZANABAZAR SQUARE SIGN VISARGA + (0x11A57 <= code && code <= 0x11A58) || // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU + 0x11A97 == code || // Mc SOYOMBO SIGN VISARGA + 0x11C2F == code || // Mc BHAIKSUKI VOWEL SIGN AA + 0x11C3E == code || // Mc BHAIKSUKI SIGN VISARGA + 0x11CA9 == code || // Mc MARCHEN SUBJOINED LETTER YA + 0x11CB1 == code || // Mc MARCHEN VOWEL SIGN I + 0x11CB4 == code || // Mc MARCHEN VOWEL SIGN O + (0x16F51 <= code && code <= 0x16F7E) || // Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG + 0x1D166 == code || // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM + 0x1D16D == code // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT + ){ + return SpacingMark; + } + + + if( + (0x1100 <= code && code <= 0x115F) || // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER + (0xA960 <= code && code <= 0xA97C) // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH + ){ + return L; + } + + if( + (0x1160 <= code && code <= 0x11A7) || // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE + (0xD7B0 <= code && code <= 0xD7C6) // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E + ){ + return V; + } + + + if( + (0x11A8 <= code && code <= 0x11FF) || // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN + (0xD7CB <= code && code <= 0xD7FB) // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH + ){ + return T; + } + + if( + 0xAC00 == code || // Lo HANGUL SYLLABLE GA + 0xAC1C == code || // Lo HANGUL SYLLABLE GAE + 0xAC38 == code || // Lo HANGUL SYLLABLE GYA + 0xAC54 == code || // Lo HANGUL SYLLABLE GYAE + 0xAC70 == code || // Lo HANGUL SYLLABLE GEO + 0xAC8C == code || // Lo HANGUL SYLLABLE GE + 0xACA8 == code || // Lo HANGUL SYLLABLE GYEO + 0xACC4 == code || // Lo HANGUL SYLLABLE GYE + 0xACE0 == code || // Lo HANGUL SYLLABLE GO + 0xACFC == code || // Lo HANGUL SYLLABLE GWA + 0xAD18 == code || // Lo HANGUL SYLLABLE GWAE + 0xAD34 == code || // Lo HANGUL SYLLABLE GOE + 0xAD50 == code || // Lo HANGUL SYLLABLE GYO + 0xAD6C == code || // Lo HANGUL SYLLABLE GU + 0xAD88 == code || // Lo HANGUL SYLLABLE GWEO + 0xADA4 == code || // Lo HANGUL SYLLABLE GWE + 0xADC0 == code || // Lo HANGUL SYLLABLE GWI + 0xADDC == code || // Lo HANGUL SYLLABLE GYU + 0xADF8 == code || // Lo HANGUL SYLLABLE GEU + 0xAE14 == code || // Lo HANGUL SYLLABLE GYI + 0xAE30 == code || // Lo HANGUL SYLLABLE GI + 0xAE4C == code || // Lo HANGUL SYLLABLE GGA + 0xAE68 == code || // Lo HANGUL SYLLABLE GGAE + 0xAE84 == code || // Lo HANGUL SYLLABLE GGYA + 0xAEA0 == code || // Lo HANGUL SYLLABLE GGYAE + 0xAEBC == code || // Lo HANGUL SYLLABLE GGEO + 0xAED8 == code || // Lo HANGUL SYLLABLE GGE + 0xAEF4 == code || // Lo HANGUL SYLLABLE GGYEO + 0xAF10 == code || // Lo HANGUL SYLLABLE GGYE + 0xAF2C == code || // Lo HANGUL SYLLABLE GGO + 0xAF48 == code || // Lo HANGUL SYLLABLE GGWA + 0xAF64 == code || // Lo HANGUL SYLLABLE GGWAE + 0xAF80 == code || // Lo HANGUL SYLLABLE GGOE + 0xAF9C == code || // Lo HANGUL SYLLABLE GGYO + 0xAFB8 == code || // Lo HANGUL SYLLABLE GGU + 0xAFD4 == code || // Lo HANGUL SYLLABLE GGWEO + 0xAFF0 == code || // Lo HANGUL SYLLABLE GGWE + 0xB00C == code || // Lo HANGUL SYLLABLE GGWI + 0xB028 == code || // Lo HANGUL SYLLABLE GGYU + 0xB044 == code || // Lo HANGUL SYLLABLE GGEU + 0xB060 == code || // Lo HANGUL SYLLABLE GGYI + 0xB07C == code || // Lo HANGUL SYLLABLE GGI + 0xB098 == code || // Lo HANGUL SYLLABLE NA + 0xB0B4 == code || // Lo HANGUL SYLLABLE NAE + 0xB0D0 == code || // Lo HANGUL SYLLABLE NYA + 0xB0EC == code || // Lo HANGUL SYLLABLE NYAE + 0xB108 == code || // Lo HANGUL SYLLABLE NEO + 0xB124 == code || // Lo HANGUL SYLLABLE NE + 0xB140 == code || // Lo HANGUL SYLLABLE NYEO + 0xB15C == code || // Lo HANGUL SYLLABLE NYE + 0xB178 == code || // Lo HANGUL SYLLABLE NO + 0xB194 == code || // Lo HANGUL SYLLABLE NWA + 0xB1B0 == code || // Lo HANGUL SYLLABLE NWAE + 0xB1CC == code || // Lo HANGUL SYLLABLE NOE + 0xB1E8 == code || // Lo HANGUL SYLLABLE NYO + 0xB204 == code || // Lo HANGUL SYLLABLE NU + 0xB220 == code || // Lo HANGUL SYLLABLE NWEO + 0xB23C == code || // Lo HANGUL SYLLABLE NWE + 0xB258 == code || // Lo HANGUL SYLLABLE NWI + 0xB274 == code || // Lo HANGUL SYLLABLE NYU + 0xB290 == code || // Lo HANGUL SYLLABLE NEU + 0xB2AC == code || // Lo HANGUL SYLLABLE NYI + 0xB2C8 == code || // Lo HANGUL SYLLABLE NI + 0xB2E4 == code || // Lo HANGUL SYLLABLE DA + 0xB300 == code || // Lo HANGUL SYLLABLE DAE + 0xB31C == code || // Lo HANGUL SYLLABLE DYA + 0xB338 == code || // Lo HANGUL SYLLABLE DYAE + 0xB354 == code || // Lo HANGUL SYLLABLE DEO + 0xB370 == code || // Lo HANGUL SYLLABLE DE + 0xB38C == code || // Lo HANGUL SYLLABLE DYEO + 0xB3A8 == code || // Lo HANGUL SYLLABLE DYE + 0xB3C4 == code || // Lo HANGUL SYLLABLE DO + 0xB3E0 == code || // Lo HANGUL SYLLABLE DWA + 0xB3FC == code || // Lo HANGUL SYLLABLE DWAE + 0xB418 == code || // Lo HANGUL SYLLABLE DOE + 0xB434 == code || // Lo HANGUL SYLLABLE DYO + 0xB450 == code || // Lo HANGUL SYLLABLE DU + 0xB46C == code || // Lo HANGUL SYLLABLE DWEO + 0xB488 == code || // Lo HANGUL SYLLABLE DWE + 0xB4A4 == code || // Lo HANGUL SYLLABLE DWI + 0xB4C0 == code || // Lo HANGUL SYLLABLE DYU + 0xB4DC == code || // Lo HANGUL SYLLABLE DEU + 0xB4F8 == code || // Lo HANGUL SYLLABLE DYI + 0xB514 == code || // Lo HANGUL SYLLABLE DI + 0xB530 == code || // Lo HANGUL SYLLABLE DDA + 0xB54C == code || // Lo HANGUL SYLLABLE DDAE + 0xB568 == code || // Lo HANGUL SYLLABLE DDYA + 0xB584 == code || // Lo HANGUL SYLLABLE DDYAE + 0xB5A0 == code || // Lo HANGUL SYLLABLE DDEO + 0xB5BC == code || // Lo HANGUL SYLLABLE DDE + 0xB5D8 == code || // Lo HANGUL SYLLABLE DDYEO + 0xB5F4 == code || // Lo HANGUL SYLLABLE DDYE + 0xB610 == code || // Lo HANGUL SYLLABLE DDO + 0xB62C == code || // Lo HANGUL SYLLABLE DDWA + 0xB648 == code || // Lo HANGUL SYLLABLE DDWAE + 0xB664 == code || // Lo HANGUL SYLLABLE DDOE + 0xB680 == code || // Lo HANGUL SYLLABLE DDYO + 0xB69C == code || // Lo HANGUL SYLLABLE DDU + 0xB6B8 == code || // Lo HANGUL SYLLABLE DDWEO + 0xB6D4 == code || // Lo HANGUL SYLLABLE DDWE + 0xB6F0 == code || // Lo HANGUL SYLLABLE DDWI + 0xB70C == code || // Lo HANGUL SYLLABLE DDYU + 0xB728 == code || // Lo HANGUL SYLLABLE DDEU + 0xB744 == code || // Lo HANGUL SYLLABLE DDYI + 0xB760 == code || // Lo HANGUL SYLLABLE DDI + 0xB77C == code || // Lo HANGUL SYLLABLE RA + 0xB798 == code || // Lo HANGUL SYLLABLE RAE + 0xB7B4 == code || // Lo HANGUL SYLLABLE RYA + 0xB7D0 == code || // Lo HANGUL SYLLABLE RYAE + 0xB7EC == code || // Lo HANGUL SYLLABLE REO + 0xB808 == code || // Lo HANGUL SYLLABLE RE + 0xB824 == code || // Lo HANGUL SYLLABLE RYEO + 0xB840 == code || // Lo HANGUL SYLLABLE RYE + 0xB85C == code || // Lo HANGUL SYLLABLE RO + 0xB878 == code || // Lo HANGUL SYLLABLE RWA + 0xB894 == code || // Lo HANGUL SYLLABLE RWAE + 0xB8B0 == code || // Lo HANGUL SYLLABLE ROE + 0xB8CC == code || // Lo HANGUL SYLLABLE RYO + 0xB8E8 == code || // Lo HANGUL SYLLABLE RU + 0xB904 == code || // Lo HANGUL SYLLABLE RWEO + 0xB920 == code || // Lo HANGUL SYLLABLE RWE + 0xB93C == code || // Lo HANGUL SYLLABLE RWI + 0xB958 == code || // Lo HANGUL SYLLABLE RYU + 0xB974 == code || // Lo HANGUL SYLLABLE REU + 0xB990 == code || // Lo HANGUL SYLLABLE RYI + 0xB9AC == code || // Lo HANGUL SYLLABLE RI + 0xB9C8 == code || // Lo HANGUL SYLLABLE MA + 0xB9E4 == code || // Lo HANGUL SYLLABLE MAE + 0xBA00 == code || // Lo HANGUL SYLLABLE MYA + 0xBA1C == code || // Lo HANGUL SYLLABLE MYAE + 0xBA38 == code || // Lo HANGUL SYLLABLE MEO + 0xBA54 == code || // Lo HANGUL SYLLABLE ME + 0xBA70 == code || // Lo HANGUL SYLLABLE MYEO + 0xBA8C == code || // Lo HANGUL SYLLABLE MYE + 0xBAA8 == code || // Lo HANGUL SYLLABLE MO + 0xBAC4 == code || // Lo HANGUL SYLLABLE MWA + 0xBAE0 == code || // Lo HANGUL SYLLABLE MWAE + 0xBAFC == code || // Lo HANGUL SYLLABLE MOE + 0xBB18 == code || // Lo HANGUL SYLLABLE MYO + 0xBB34 == code || // Lo HANGUL SYLLABLE MU + 0xBB50 == code || // Lo HANGUL SYLLABLE MWEO + 0xBB6C == code || // Lo HANGUL SYLLABLE MWE + 0xBB88 == code || // Lo HANGUL SYLLABLE MWI + 0xBBA4 == code || // Lo HANGUL SYLLABLE MYU + 0xBBC0 == code || // Lo HANGUL SYLLABLE MEU + 0xBBDC == code || // Lo HANGUL SYLLABLE MYI + 0xBBF8 == code || // Lo HANGUL SYLLABLE MI + 0xBC14 == code || // Lo HANGUL SYLLABLE BA + 0xBC30 == code || // Lo HANGUL SYLLABLE BAE + 0xBC4C == code || // Lo HANGUL SYLLABLE BYA + 0xBC68 == code || // Lo HANGUL SYLLABLE BYAE + 0xBC84 == code || // Lo HANGUL SYLLABLE BEO + 0xBCA0 == code || // Lo HANGUL SYLLABLE BE + 0xBCBC == code || // Lo HANGUL SYLLABLE BYEO + 0xBCD8 == code || // Lo HANGUL SYLLABLE BYE + 0xBCF4 == code || // Lo HANGUL SYLLABLE BO + 0xBD10 == code || // Lo HANGUL SYLLABLE BWA + 0xBD2C == code || // Lo HANGUL SYLLABLE BWAE + 0xBD48 == code || // Lo HANGUL SYLLABLE BOE + 0xBD64 == code || // Lo HANGUL SYLLABLE BYO + 0xBD80 == code || // Lo HANGUL SYLLABLE BU + 0xBD9C == code || // Lo HANGUL SYLLABLE BWEO + 0xBDB8 == code || // Lo HANGUL SYLLABLE BWE + 0xBDD4 == code || // Lo HANGUL SYLLABLE BWI + 0xBDF0 == code || // Lo HANGUL SYLLABLE BYU + 0xBE0C == code || // Lo HANGUL SYLLABLE BEU + 0xBE28 == code || // Lo HANGUL SYLLABLE BYI + 0xBE44 == code || // Lo HANGUL SYLLABLE BI + 0xBE60 == code || // Lo HANGUL SYLLABLE BBA + 0xBE7C == code || // Lo HANGUL SYLLABLE BBAE + 0xBE98 == code || // Lo HANGUL SYLLABLE BBYA + 0xBEB4 == code || // Lo HANGUL SYLLABLE BBYAE + 0xBED0 == code || // Lo HANGUL SYLLABLE BBEO + 0xBEEC == code || // Lo HANGUL SYLLABLE BBE + 0xBF08 == code || // Lo HANGUL SYLLABLE BBYEO + 0xBF24 == code || // Lo HANGUL SYLLABLE BBYE + 0xBF40 == code || // Lo HANGUL SYLLABLE BBO + 0xBF5C == code || // Lo HANGUL SYLLABLE BBWA + 0xBF78 == code || // Lo HANGUL SYLLABLE BBWAE + 0xBF94 == code || // Lo HANGUL SYLLABLE BBOE + 0xBFB0 == code || // Lo HANGUL SYLLABLE BBYO + 0xBFCC == code || // Lo HANGUL SYLLABLE BBU + 0xBFE8 == code || // Lo HANGUL SYLLABLE BBWEO + 0xC004 == code || // Lo HANGUL SYLLABLE BBWE + 0xC020 == code || // Lo HANGUL SYLLABLE BBWI + 0xC03C == code || // Lo HANGUL SYLLABLE BBYU + 0xC058 == code || // Lo HANGUL SYLLABLE BBEU + 0xC074 == code || // Lo HANGUL SYLLABLE BBYI + 0xC090 == code || // Lo HANGUL SYLLABLE BBI + 0xC0AC == code || // Lo HANGUL SYLLABLE SA + 0xC0C8 == code || // Lo HANGUL SYLLABLE SAE + 0xC0E4 == code || // Lo HANGUL SYLLABLE SYA + 0xC100 == code || // Lo HANGUL SYLLABLE SYAE + 0xC11C == code || // Lo HANGUL SYLLABLE SEO + 0xC138 == code || // Lo HANGUL SYLLABLE SE + 0xC154 == code || // Lo HANGUL SYLLABLE SYEO + 0xC170 == code || // Lo HANGUL SYLLABLE SYE + 0xC18C == code || // Lo HANGUL SYLLABLE SO + 0xC1A8 == code || // Lo HANGUL SYLLABLE SWA + 0xC1C4 == code || // Lo HANGUL SYLLABLE SWAE + 0xC1E0 == code || // Lo HANGUL SYLLABLE SOE + 0xC1FC == code || // Lo HANGUL SYLLABLE SYO + 0xC218 == code || // Lo HANGUL SYLLABLE SU + 0xC234 == code || // Lo HANGUL SYLLABLE SWEO + 0xC250 == code || // Lo HANGUL SYLLABLE SWE + 0xC26C == code || // Lo HANGUL SYLLABLE SWI + 0xC288 == code || // Lo HANGUL SYLLABLE SYU + 0xC2A4 == code || // Lo HANGUL SYLLABLE SEU + 0xC2C0 == code || // Lo HANGUL SYLLABLE SYI + 0xC2DC == code || // Lo HANGUL SYLLABLE SI + 0xC2F8 == code || // Lo HANGUL SYLLABLE SSA + 0xC314 == code || // Lo HANGUL SYLLABLE SSAE + 0xC330 == code || // Lo HANGUL SYLLABLE SSYA + 0xC34C == code || // Lo HANGUL SYLLABLE SSYAE + 0xC368 == code || // Lo HANGUL SYLLABLE SSEO + 0xC384 == code || // Lo HANGUL SYLLABLE SSE + 0xC3A0 == code || // Lo HANGUL SYLLABLE SSYEO + 0xC3BC == code || // Lo HANGUL SYLLABLE SSYE + 0xC3D8 == code || // Lo HANGUL SYLLABLE SSO + 0xC3F4 == code || // Lo HANGUL SYLLABLE SSWA + 0xC410 == code || // Lo HANGUL SYLLABLE SSWAE + 0xC42C == code || // Lo HANGUL SYLLABLE SSOE + 0xC448 == code || // Lo HANGUL SYLLABLE SSYO + 0xC464 == code || // Lo HANGUL SYLLABLE SSU + 0xC480 == code || // Lo HANGUL SYLLABLE SSWEO + 0xC49C == code || // Lo HANGUL SYLLABLE SSWE + 0xC4B8 == code || // Lo HANGUL SYLLABLE SSWI + 0xC4D4 == code || // Lo HANGUL SYLLABLE SSYU + 0xC4F0 == code || // Lo HANGUL SYLLABLE SSEU + 0xC50C == code || // Lo HANGUL SYLLABLE SSYI + 0xC528 == code || // Lo HANGUL SYLLABLE SSI + 0xC544 == code || // Lo HANGUL SYLLABLE A + 0xC560 == code || // Lo HANGUL SYLLABLE AE + 0xC57C == code || // Lo HANGUL SYLLABLE YA + 0xC598 == code || // Lo HANGUL SYLLABLE YAE + 0xC5B4 == code || // Lo HANGUL SYLLABLE EO + 0xC5D0 == code || // Lo HANGUL SYLLABLE E + 0xC5EC == code || // Lo HANGUL SYLLABLE YEO + 0xC608 == code || // Lo HANGUL SYLLABLE YE + 0xC624 == code || // Lo HANGUL SYLLABLE O + 0xC640 == code || // Lo HANGUL SYLLABLE WA + 0xC65C == code || // Lo HANGUL SYLLABLE WAE + 0xC678 == code || // Lo HANGUL SYLLABLE OE + 0xC694 == code || // Lo HANGUL SYLLABLE YO + 0xC6B0 == code || // Lo HANGUL SYLLABLE U + 0xC6CC == code || // Lo HANGUL SYLLABLE WEO + 0xC6E8 == code || // Lo HANGUL SYLLABLE WE + 0xC704 == code || // Lo HANGUL SYLLABLE WI + 0xC720 == code || // Lo HANGUL SYLLABLE YU + 0xC73C == code || // Lo HANGUL SYLLABLE EU + 0xC758 == code || // Lo HANGUL SYLLABLE YI + 0xC774 == code || // Lo HANGUL SYLLABLE I + 0xC790 == code || // Lo HANGUL SYLLABLE JA + 0xC7AC == code || // Lo HANGUL SYLLABLE JAE + 0xC7C8 == code || // Lo HANGUL SYLLABLE JYA + 0xC7E4 == code || // Lo HANGUL SYLLABLE JYAE + 0xC800 == code || // Lo HANGUL SYLLABLE JEO + 0xC81C == code || // Lo HANGUL SYLLABLE JE + 0xC838 == code || // Lo HANGUL SYLLABLE JYEO + 0xC854 == code || // Lo HANGUL SYLLABLE JYE + 0xC870 == code || // Lo HANGUL SYLLABLE JO + 0xC88C == code || // Lo HANGUL SYLLABLE JWA + 0xC8A8 == code || // Lo HANGUL SYLLABLE JWAE + 0xC8C4 == code || // Lo HANGUL SYLLABLE JOE + 0xC8E0 == code || // Lo HANGUL SYLLABLE JYO + 0xC8FC == code || // Lo HANGUL SYLLABLE JU + 0xC918 == code || // Lo HANGUL SYLLABLE JWEO + 0xC934 == code || // Lo HANGUL SYLLABLE JWE + 0xC950 == code || // Lo HANGUL SYLLABLE JWI + 0xC96C == code || // Lo HANGUL SYLLABLE JYU + 0xC988 == code || // Lo HANGUL SYLLABLE JEU + 0xC9A4 == code || // Lo HANGUL SYLLABLE JYI + 0xC9C0 == code || // Lo HANGUL SYLLABLE JI + 0xC9DC == code || // Lo HANGUL SYLLABLE JJA + 0xC9F8 == code || // Lo HANGUL SYLLABLE JJAE + 0xCA14 == code || // Lo HANGUL SYLLABLE JJYA + 0xCA30 == code || // Lo HANGUL SYLLABLE JJYAE + 0xCA4C == code || // Lo HANGUL SYLLABLE JJEO + 0xCA68 == code || // Lo HANGUL SYLLABLE JJE + 0xCA84 == code || // Lo HANGUL SYLLABLE JJYEO + 0xCAA0 == code || // Lo HANGUL SYLLABLE JJYE + 0xCABC == code || // Lo HANGUL SYLLABLE JJO + 0xCAD8 == code || // Lo HANGUL SYLLABLE JJWA + 0xCAF4 == code || // Lo HANGUL SYLLABLE JJWAE + 0xCB10 == code || // Lo HANGUL SYLLABLE JJOE + 0xCB2C == code || // Lo HANGUL SYLLABLE JJYO + 0xCB48 == code || // Lo HANGUL SYLLABLE JJU + 0xCB64 == code || // Lo HANGUL SYLLABLE JJWEO + 0xCB80 == code || // Lo HANGUL SYLLABLE JJWE + 0xCB9C == code || // Lo HANGUL SYLLABLE JJWI + 0xCBB8 == code || // Lo HANGUL SYLLABLE JJYU + 0xCBD4 == code || // Lo HANGUL SYLLABLE JJEU + 0xCBF0 == code || // Lo HANGUL SYLLABLE JJYI + 0xCC0C == code || // Lo HANGUL SYLLABLE JJI + 0xCC28 == code || // Lo HANGUL SYLLABLE CA + 0xCC44 == code || // Lo HANGUL SYLLABLE CAE + 0xCC60 == code || // Lo HANGUL SYLLABLE CYA + 0xCC7C == code || // Lo HANGUL SYLLABLE CYAE + 0xCC98 == code || // Lo HANGUL SYLLABLE CEO + 0xCCB4 == code || // Lo HANGUL SYLLABLE CE + 0xCCD0 == code || // Lo HANGUL SYLLABLE CYEO + 0xCCEC == code || // Lo HANGUL SYLLABLE CYE + 0xCD08 == code || // Lo HANGUL SYLLABLE CO + 0xCD24 == code || // Lo HANGUL SYLLABLE CWA + 0xCD40 == code || // Lo HANGUL SYLLABLE CWAE + 0xCD5C == code || // Lo HANGUL SYLLABLE COE + 0xCD78 == code || // Lo HANGUL SYLLABLE CYO + 0xCD94 == code || // Lo HANGUL SYLLABLE CU + 0xCDB0 == code || // Lo HANGUL SYLLABLE CWEO + 0xCDCC == code || // Lo HANGUL SYLLABLE CWE + 0xCDE8 == code || // Lo HANGUL SYLLABLE CWI + 0xCE04 == code || // Lo HANGUL SYLLABLE CYU + 0xCE20 == code || // Lo HANGUL SYLLABLE CEU + 0xCE3C == code || // Lo HANGUL SYLLABLE CYI + 0xCE58 == code || // Lo HANGUL SYLLABLE CI + 0xCE74 == code || // Lo HANGUL SYLLABLE KA + 0xCE90 == code || // Lo HANGUL SYLLABLE KAE + 0xCEAC == code || // Lo HANGUL SYLLABLE KYA + 0xCEC8 == code || // Lo HANGUL SYLLABLE KYAE + 0xCEE4 == code || // Lo HANGUL SYLLABLE KEO + 0xCF00 == code || // Lo HANGUL SYLLABLE KE + 0xCF1C == code || // Lo HANGUL SYLLABLE KYEO + 0xCF38 == code || // Lo HANGUL SYLLABLE KYE + 0xCF54 == code || // Lo HANGUL SYLLABLE KO + 0xCF70 == code || // Lo HANGUL SYLLABLE KWA + 0xCF8C == code || // Lo HANGUL SYLLABLE KWAE + 0xCFA8 == code || // Lo HANGUL SYLLABLE KOE + 0xCFC4 == code || // Lo HANGUL SYLLABLE KYO + 0xCFE0 == code || // Lo HANGUL SYLLABLE KU + 0xCFFC == code || // Lo HANGUL SYLLABLE KWEO + 0xD018 == code || // Lo HANGUL SYLLABLE KWE + 0xD034 == code || // Lo HANGUL SYLLABLE KWI + 0xD050 == code || // Lo HANGUL SYLLABLE KYU + 0xD06C == code || // Lo HANGUL SYLLABLE KEU + 0xD088 == code || // Lo HANGUL SYLLABLE KYI + 0xD0A4 == code || // Lo HANGUL SYLLABLE KI + 0xD0C0 == code || // Lo HANGUL SYLLABLE TA + 0xD0DC == code || // Lo HANGUL SYLLABLE TAE + 0xD0F8 == code || // Lo HANGUL SYLLABLE TYA + 0xD114 == code || // Lo HANGUL SYLLABLE TYAE + 0xD130 == code || // Lo HANGUL SYLLABLE TEO + 0xD14C == code || // Lo HANGUL SYLLABLE TE + 0xD168 == code || // Lo HANGUL SYLLABLE TYEO + 0xD184 == code || // Lo HANGUL SYLLABLE TYE + 0xD1A0 == code || // Lo HANGUL SYLLABLE TO + 0xD1BC == code || // Lo HANGUL SYLLABLE TWA + 0xD1D8 == code || // Lo HANGUL SYLLABLE TWAE + 0xD1F4 == code || // Lo HANGUL SYLLABLE TOE + 0xD210 == code || // Lo HANGUL SYLLABLE TYO + 0xD22C == code || // Lo HANGUL SYLLABLE TU + 0xD248 == code || // Lo HANGUL SYLLABLE TWEO + 0xD264 == code || // Lo HANGUL SYLLABLE TWE + 0xD280 == code || // Lo HANGUL SYLLABLE TWI + 0xD29C == code || // Lo HANGUL SYLLABLE TYU + 0xD2B8 == code || // Lo HANGUL SYLLABLE TEU + 0xD2D4 == code || // Lo HANGUL SYLLABLE TYI + 0xD2F0 == code || // Lo HANGUL SYLLABLE TI + 0xD30C == code || // Lo HANGUL SYLLABLE PA + 0xD328 == code || // Lo HANGUL SYLLABLE PAE + 0xD344 == code || // Lo HANGUL SYLLABLE PYA + 0xD360 == code || // Lo HANGUL SYLLABLE PYAE + 0xD37C == code || // Lo HANGUL SYLLABLE PEO + 0xD398 == code || // Lo HANGUL SYLLABLE PE + 0xD3B4 == code || // Lo HANGUL SYLLABLE PYEO + 0xD3D0 == code || // Lo HANGUL SYLLABLE PYE + 0xD3EC == code || // Lo HANGUL SYLLABLE PO + 0xD408 == code || // Lo HANGUL SYLLABLE PWA + 0xD424 == code || // Lo HANGUL SYLLABLE PWAE + 0xD440 == code || // Lo HANGUL SYLLABLE POE + 0xD45C == code || // Lo HANGUL SYLLABLE PYO + 0xD478 == code || // Lo HANGUL SYLLABLE PU + 0xD494 == code || // Lo HANGUL SYLLABLE PWEO + 0xD4B0 == code || // Lo HANGUL SYLLABLE PWE + 0xD4CC == code || // Lo HANGUL SYLLABLE PWI + 0xD4E8 == code || // Lo HANGUL SYLLABLE PYU + 0xD504 == code || // Lo HANGUL SYLLABLE PEU + 0xD520 == code || // Lo HANGUL SYLLABLE PYI + 0xD53C == code || // Lo HANGUL SYLLABLE PI + 0xD558 == code || // Lo HANGUL SYLLABLE HA + 0xD574 == code || // Lo HANGUL SYLLABLE HAE + 0xD590 == code || // Lo HANGUL SYLLABLE HYA + 0xD5AC == code || // Lo HANGUL SYLLABLE HYAE + 0xD5C8 == code || // Lo HANGUL SYLLABLE HEO + 0xD5E4 == code || // Lo HANGUL SYLLABLE HE + 0xD600 == code || // Lo HANGUL SYLLABLE HYEO + 0xD61C == code || // Lo HANGUL SYLLABLE HYE + 0xD638 == code || // Lo HANGUL SYLLABLE HO + 0xD654 == code || // Lo HANGUL SYLLABLE HWA + 0xD670 == code || // Lo HANGUL SYLLABLE HWAE + 0xD68C == code || // Lo HANGUL SYLLABLE HOE + 0xD6A8 == code || // Lo HANGUL SYLLABLE HYO + 0xD6C4 == code || // Lo HANGUL SYLLABLE HU + 0xD6E0 == code || // Lo HANGUL SYLLABLE HWEO + 0xD6FC == code || // Lo HANGUL SYLLABLE HWE + 0xD718 == code || // Lo HANGUL SYLLABLE HWI + 0xD734 == code || // Lo HANGUL SYLLABLE HYU + 0xD750 == code || // Lo HANGUL SYLLABLE HEU + 0xD76C == code || // Lo HANGUL SYLLABLE HYI + 0xD788 == code // Lo HANGUL SYLLABLE HI + ){ + return LV; + } + + if( + (0xAC01 <= code && code <= 0xAC1B) || // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH + (0xAC1D <= code && code <= 0xAC37) || // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH + (0xAC39 <= code && code <= 0xAC53) || // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH + (0xAC55 <= code && code <= 0xAC6F) || // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH + (0xAC71 <= code && code <= 0xAC8B) || // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH + (0xAC8D <= code && code <= 0xACA7) || // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH + (0xACA9 <= code && code <= 0xACC3) || // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH + (0xACC5 <= code && code <= 0xACDF) || // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH + (0xACE1 <= code && code <= 0xACFB) || // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH + (0xACFD <= code && code <= 0xAD17) || // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH + (0xAD19 <= code && code <= 0xAD33) || // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH + (0xAD35 <= code && code <= 0xAD4F) || // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH + (0xAD51 <= code && code <= 0xAD6B) || // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH + (0xAD6D <= code && code <= 0xAD87) || // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH + (0xAD89 <= code && code <= 0xADA3) || // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH + (0xADA5 <= code && code <= 0xADBF) || // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH + (0xADC1 <= code && code <= 0xADDB) || // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH + (0xADDD <= code && code <= 0xADF7) || // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH + (0xADF9 <= code && code <= 0xAE13) || // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH + (0xAE15 <= code && code <= 0xAE2F) || // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH + (0xAE31 <= code && code <= 0xAE4B) || // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH + (0xAE4D <= code && code <= 0xAE67) || // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH + (0xAE69 <= code && code <= 0xAE83) || // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH + (0xAE85 <= code && code <= 0xAE9F) || // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH + (0xAEA1 <= code && code <= 0xAEBB) || // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH + (0xAEBD <= code && code <= 0xAED7) || // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH + (0xAED9 <= code && code <= 0xAEF3) || // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH + (0xAEF5 <= code && code <= 0xAF0F) || // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH + (0xAF11 <= code && code <= 0xAF2B) || // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH + (0xAF2D <= code && code <= 0xAF47) || // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH + (0xAF49 <= code && code <= 0xAF63) || // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH + (0xAF65 <= code && code <= 0xAF7F) || // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH + (0xAF81 <= code && code <= 0xAF9B) || // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH + (0xAF9D <= code && code <= 0xAFB7) || // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH + (0xAFB9 <= code && code <= 0xAFD3) || // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH + (0xAFD5 <= code && code <= 0xAFEF) || // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH + (0xAFF1 <= code && code <= 0xB00B) || // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH + (0xB00D <= code && code <= 0xB027) || // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH + (0xB029 <= code && code <= 0xB043) || // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH + (0xB045 <= code && code <= 0xB05F) || // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH + (0xB061 <= code && code <= 0xB07B) || // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH + (0xB07D <= code && code <= 0xB097) || // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH + (0xB099 <= code && code <= 0xB0B3) || // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH + (0xB0B5 <= code && code <= 0xB0CF) || // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH + (0xB0D1 <= code && code <= 0xB0EB) || // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH + (0xB0ED <= code && code <= 0xB107) || // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH + (0xB109 <= code && code <= 0xB123) || // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH + (0xB125 <= code && code <= 0xB13F) || // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH + (0xB141 <= code && code <= 0xB15B) || // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH + (0xB15D <= code && code <= 0xB177) || // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH + (0xB179 <= code && code <= 0xB193) || // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH + (0xB195 <= code && code <= 0xB1AF) || // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH + (0xB1B1 <= code && code <= 0xB1CB) || // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH + (0xB1CD <= code && code <= 0xB1E7) || // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH + (0xB1E9 <= code && code <= 0xB203) || // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH + (0xB205 <= code && code <= 0xB21F) || // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH + (0xB221 <= code && code <= 0xB23B) || // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH + (0xB23D <= code && code <= 0xB257) || // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH + (0xB259 <= code && code <= 0xB273) || // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH + (0xB275 <= code && code <= 0xB28F) || // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH + (0xB291 <= code && code <= 0xB2AB) || // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH + (0xB2AD <= code && code <= 0xB2C7) || // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH + (0xB2C9 <= code && code <= 0xB2E3) || // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH + (0xB2E5 <= code && code <= 0xB2FF) || // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH + (0xB301 <= code && code <= 0xB31B) || // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH + (0xB31D <= code && code <= 0xB337) || // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH + (0xB339 <= code && code <= 0xB353) || // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH + (0xB355 <= code && code <= 0xB36F) || // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH + (0xB371 <= code && code <= 0xB38B) || // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH + (0xB38D <= code && code <= 0xB3A7) || // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH + (0xB3A9 <= code && code <= 0xB3C3) || // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH + (0xB3C5 <= code && code <= 0xB3DF) || // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH + (0xB3E1 <= code && code <= 0xB3FB) || // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH + (0xB3FD <= code && code <= 0xB417) || // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH + (0xB419 <= code && code <= 0xB433) || // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH + (0xB435 <= code && code <= 0xB44F) || // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH + (0xB451 <= code && code <= 0xB46B) || // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH + (0xB46D <= code && code <= 0xB487) || // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH + (0xB489 <= code && code <= 0xB4A3) || // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH + (0xB4A5 <= code && code <= 0xB4BF) || // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH + (0xB4C1 <= code && code <= 0xB4DB) || // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH + (0xB4DD <= code && code <= 0xB4F7) || // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH + (0xB4F9 <= code && code <= 0xB513) || // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH + (0xB515 <= code && code <= 0xB52F) || // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH + (0xB531 <= code && code <= 0xB54B) || // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH + (0xB54D <= code && code <= 0xB567) || // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH + (0xB569 <= code && code <= 0xB583) || // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH + (0xB585 <= code && code <= 0xB59F) || // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH + (0xB5A1 <= code && code <= 0xB5BB) || // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH + (0xB5BD <= code && code <= 0xB5D7) || // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH + (0xB5D9 <= code && code <= 0xB5F3) || // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH + (0xB5F5 <= code && code <= 0xB60F) || // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH + (0xB611 <= code && code <= 0xB62B) || // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH + (0xB62D <= code && code <= 0xB647) || // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH + (0xB649 <= code && code <= 0xB663) || // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH + (0xB665 <= code && code <= 0xB67F) || // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH + (0xB681 <= code && code <= 0xB69B) || // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH + (0xB69D <= code && code <= 0xB6B7) || // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH + (0xB6B9 <= code && code <= 0xB6D3) || // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH + (0xB6D5 <= code && code <= 0xB6EF) || // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH + (0xB6F1 <= code && code <= 0xB70B) || // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH + (0xB70D <= code && code <= 0xB727) || // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH + (0xB729 <= code && code <= 0xB743) || // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH + (0xB745 <= code && code <= 0xB75F) || // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH + (0xB761 <= code && code <= 0xB77B) || // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH + (0xB77D <= code && code <= 0xB797) || // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH + (0xB799 <= code && code <= 0xB7B3) || // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH + (0xB7B5 <= code && code <= 0xB7CF) || // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH + (0xB7D1 <= code && code <= 0xB7EB) || // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH + (0xB7ED <= code && code <= 0xB807) || // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH + (0xB809 <= code && code <= 0xB823) || // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH + (0xB825 <= code && code <= 0xB83F) || // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH + (0xB841 <= code && code <= 0xB85B) || // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH + (0xB85D <= code && code <= 0xB877) || // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH + (0xB879 <= code && code <= 0xB893) || // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH + (0xB895 <= code && code <= 0xB8AF) || // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH + (0xB8B1 <= code && code <= 0xB8CB) || // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH + (0xB8CD <= code && code <= 0xB8E7) || // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH + (0xB8E9 <= code && code <= 0xB903) || // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH + (0xB905 <= code && code <= 0xB91F) || // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH + (0xB921 <= code && code <= 0xB93B) || // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH + (0xB93D <= code && code <= 0xB957) || // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH + (0xB959 <= code && code <= 0xB973) || // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH + (0xB975 <= code && code <= 0xB98F) || // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH + (0xB991 <= code && code <= 0xB9AB) || // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH + (0xB9AD <= code && code <= 0xB9C7) || // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH + (0xB9C9 <= code && code <= 0xB9E3) || // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH + (0xB9E5 <= code && code <= 0xB9FF) || // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH + (0xBA01 <= code && code <= 0xBA1B) || // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH + (0xBA1D <= code && code <= 0xBA37) || // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH + (0xBA39 <= code && code <= 0xBA53) || // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH + (0xBA55 <= code && code <= 0xBA6F) || // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH + (0xBA71 <= code && code <= 0xBA8B) || // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH + (0xBA8D <= code && code <= 0xBAA7) || // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH + (0xBAA9 <= code && code <= 0xBAC3) || // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH + (0xBAC5 <= code && code <= 0xBADF) || // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH + (0xBAE1 <= code && code <= 0xBAFB) || // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH + (0xBAFD <= code && code <= 0xBB17) || // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH + (0xBB19 <= code && code <= 0xBB33) || // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH + (0xBB35 <= code && code <= 0xBB4F) || // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH + (0xBB51 <= code && code <= 0xBB6B) || // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH + (0xBB6D <= code && code <= 0xBB87) || // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH + (0xBB89 <= code && code <= 0xBBA3) || // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH + (0xBBA5 <= code && code <= 0xBBBF) || // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH + (0xBBC1 <= code && code <= 0xBBDB) || // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH + (0xBBDD <= code && code <= 0xBBF7) || // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH + (0xBBF9 <= code && code <= 0xBC13) || // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH + (0xBC15 <= code && code <= 0xBC2F) || // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH + (0xBC31 <= code && code <= 0xBC4B) || // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH + (0xBC4D <= code && code <= 0xBC67) || // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH + (0xBC69 <= code && code <= 0xBC83) || // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH + (0xBC85 <= code && code <= 0xBC9F) || // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH + (0xBCA1 <= code && code <= 0xBCBB) || // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH + (0xBCBD <= code && code <= 0xBCD7) || // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH + (0xBCD9 <= code && code <= 0xBCF3) || // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH + (0xBCF5 <= code && code <= 0xBD0F) || // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH + (0xBD11 <= code && code <= 0xBD2B) || // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH + (0xBD2D <= code && code <= 0xBD47) || // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH + (0xBD49 <= code && code <= 0xBD63) || // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH + (0xBD65 <= code && code <= 0xBD7F) || // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH + (0xBD81 <= code && code <= 0xBD9B) || // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH + (0xBD9D <= code && code <= 0xBDB7) || // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH + (0xBDB9 <= code && code <= 0xBDD3) || // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH + (0xBDD5 <= code && code <= 0xBDEF) || // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH + (0xBDF1 <= code && code <= 0xBE0B) || // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH + (0xBE0D <= code && code <= 0xBE27) || // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH + (0xBE29 <= code && code <= 0xBE43) || // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH + (0xBE45 <= code && code <= 0xBE5F) || // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH + (0xBE61 <= code && code <= 0xBE7B) || // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH + (0xBE7D <= code && code <= 0xBE97) || // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH + (0xBE99 <= code && code <= 0xBEB3) || // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH + (0xBEB5 <= code && code <= 0xBECF) || // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH + (0xBED1 <= code && code <= 0xBEEB) || // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH + (0xBEED <= code && code <= 0xBF07) || // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH + (0xBF09 <= code && code <= 0xBF23) || // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH + (0xBF25 <= code && code <= 0xBF3F) || // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH + (0xBF41 <= code && code <= 0xBF5B) || // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH + (0xBF5D <= code && code <= 0xBF77) || // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH + (0xBF79 <= code && code <= 0xBF93) || // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH + (0xBF95 <= code && code <= 0xBFAF) || // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH + (0xBFB1 <= code && code <= 0xBFCB) || // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH + (0xBFCD <= code && code <= 0xBFE7) || // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH + (0xBFE9 <= code && code <= 0xC003) || // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH + (0xC005 <= code && code <= 0xC01F) || // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH + (0xC021 <= code && code <= 0xC03B) || // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH + (0xC03D <= code && code <= 0xC057) || // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH + (0xC059 <= code && code <= 0xC073) || // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH + (0xC075 <= code && code <= 0xC08F) || // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH + (0xC091 <= code && code <= 0xC0AB) || // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH + (0xC0AD <= code && code <= 0xC0C7) || // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH + (0xC0C9 <= code && code <= 0xC0E3) || // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH + (0xC0E5 <= code && code <= 0xC0FF) || // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH + (0xC101 <= code && code <= 0xC11B) || // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH + (0xC11D <= code && code <= 0xC137) || // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH + (0xC139 <= code && code <= 0xC153) || // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH + (0xC155 <= code && code <= 0xC16F) || // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH + (0xC171 <= code && code <= 0xC18B) || // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH + (0xC18D <= code && code <= 0xC1A7) || // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH + (0xC1A9 <= code && code <= 0xC1C3) || // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH + (0xC1C5 <= code && code <= 0xC1DF) || // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH + (0xC1E1 <= code && code <= 0xC1FB) || // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH + (0xC1FD <= code && code <= 0xC217) || // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH + (0xC219 <= code && code <= 0xC233) || // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH + (0xC235 <= code && code <= 0xC24F) || // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH + (0xC251 <= code && code <= 0xC26B) || // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH + (0xC26D <= code && code <= 0xC287) || // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH + (0xC289 <= code && code <= 0xC2A3) || // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH + (0xC2A5 <= code && code <= 0xC2BF) || // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH + (0xC2C1 <= code && code <= 0xC2DB) || // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH + (0xC2DD <= code && code <= 0xC2F7) || // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH + (0xC2F9 <= code && code <= 0xC313) || // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH + (0xC315 <= code && code <= 0xC32F) || // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH + (0xC331 <= code && code <= 0xC34B) || // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH + (0xC34D <= code && code <= 0xC367) || // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH + (0xC369 <= code && code <= 0xC383) || // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH + (0xC385 <= code && code <= 0xC39F) || // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH + (0xC3A1 <= code && code <= 0xC3BB) || // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH + (0xC3BD <= code && code <= 0xC3D7) || // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH + (0xC3D9 <= code && code <= 0xC3F3) || // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH + (0xC3F5 <= code && code <= 0xC40F) || // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH + (0xC411 <= code && code <= 0xC42B) || // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH + (0xC42D <= code && code <= 0xC447) || // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH + (0xC449 <= code && code <= 0xC463) || // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH + (0xC465 <= code && code <= 0xC47F) || // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH + (0xC481 <= code && code <= 0xC49B) || // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH + (0xC49D <= code && code <= 0xC4B7) || // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH + (0xC4B9 <= code && code <= 0xC4D3) || // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH + (0xC4D5 <= code && code <= 0xC4EF) || // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH + (0xC4F1 <= code && code <= 0xC50B) || // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH + (0xC50D <= code && code <= 0xC527) || // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH + (0xC529 <= code && code <= 0xC543) || // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH + (0xC545 <= code && code <= 0xC55F) || // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH + (0xC561 <= code && code <= 0xC57B) || // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH + (0xC57D <= code && code <= 0xC597) || // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH + (0xC599 <= code && code <= 0xC5B3) || // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH + (0xC5B5 <= code && code <= 0xC5CF) || // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH + (0xC5D1 <= code && code <= 0xC5EB) || // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH + (0xC5ED <= code && code <= 0xC607) || // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH + (0xC609 <= code && code <= 0xC623) || // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH + (0xC625 <= code && code <= 0xC63F) || // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH + (0xC641 <= code && code <= 0xC65B) || // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH + (0xC65D <= code && code <= 0xC677) || // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH + (0xC679 <= code && code <= 0xC693) || // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH + (0xC695 <= code && code <= 0xC6AF) || // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH + (0xC6B1 <= code && code <= 0xC6CB) || // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH + (0xC6CD <= code && code <= 0xC6E7) || // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH + (0xC6E9 <= code && code <= 0xC703) || // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH + (0xC705 <= code && code <= 0xC71F) || // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH + (0xC721 <= code && code <= 0xC73B) || // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH + (0xC73D <= code && code <= 0xC757) || // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH + (0xC759 <= code && code <= 0xC773) || // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH + (0xC775 <= code && code <= 0xC78F) || // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH + (0xC791 <= code && code <= 0xC7AB) || // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH + (0xC7AD <= code && code <= 0xC7C7) || // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH + (0xC7C9 <= code && code <= 0xC7E3) || // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH + (0xC7E5 <= code && code <= 0xC7FF) || // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH + (0xC801 <= code && code <= 0xC81B) || // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH + (0xC81D <= code && code <= 0xC837) || // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH + (0xC839 <= code && code <= 0xC853) || // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH + (0xC855 <= code && code <= 0xC86F) || // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH + (0xC871 <= code && code <= 0xC88B) || // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH + (0xC88D <= code && code <= 0xC8A7) || // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH + (0xC8A9 <= code && code <= 0xC8C3) || // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH + (0xC8C5 <= code && code <= 0xC8DF) || // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH + (0xC8E1 <= code && code <= 0xC8FB) || // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH + (0xC8FD <= code && code <= 0xC917) || // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH + (0xC919 <= code && code <= 0xC933) || // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH + (0xC935 <= code && code <= 0xC94F) || // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH + (0xC951 <= code && code <= 0xC96B) || // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH + (0xC96D <= code && code <= 0xC987) || // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH + (0xC989 <= code && code <= 0xC9A3) || // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH + (0xC9A5 <= code && code <= 0xC9BF) || // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH + (0xC9C1 <= code && code <= 0xC9DB) || // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH + (0xC9DD <= code && code <= 0xC9F7) || // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH + (0xC9F9 <= code && code <= 0xCA13) || // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH + (0xCA15 <= code && code <= 0xCA2F) || // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH + (0xCA31 <= code && code <= 0xCA4B) || // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH + (0xCA4D <= code && code <= 0xCA67) || // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH + (0xCA69 <= code && code <= 0xCA83) || // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH + (0xCA85 <= code && code <= 0xCA9F) || // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH + (0xCAA1 <= code && code <= 0xCABB) || // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH + (0xCABD <= code && code <= 0xCAD7) || // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH + (0xCAD9 <= code && code <= 0xCAF3) || // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH + (0xCAF5 <= code && code <= 0xCB0F) || // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH + (0xCB11 <= code && code <= 0xCB2B) || // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH + (0xCB2D <= code && code <= 0xCB47) || // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH + (0xCB49 <= code && code <= 0xCB63) || // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH + (0xCB65 <= code && code <= 0xCB7F) || // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH + (0xCB81 <= code && code <= 0xCB9B) || // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH + (0xCB9D <= code && code <= 0xCBB7) || // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH + (0xCBB9 <= code && code <= 0xCBD3) || // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH + (0xCBD5 <= code && code <= 0xCBEF) || // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH + (0xCBF1 <= code && code <= 0xCC0B) || // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH + (0xCC0D <= code && code <= 0xCC27) || // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH + (0xCC29 <= code && code <= 0xCC43) || // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH + (0xCC45 <= code && code <= 0xCC5F) || // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH + (0xCC61 <= code && code <= 0xCC7B) || // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH + (0xCC7D <= code && code <= 0xCC97) || // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH + (0xCC99 <= code && code <= 0xCCB3) || // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH + (0xCCB5 <= code && code <= 0xCCCF) || // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH + (0xCCD1 <= code && code <= 0xCCEB) || // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH + (0xCCED <= code && code <= 0xCD07) || // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH + (0xCD09 <= code && code <= 0xCD23) || // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH + (0xCD25 <= code && code <= 0xCD3F) || // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH + (0xCD41 <= code && code <= 0xCD5B) || // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH + (0xCD5D <= code && code <= 0xCD77) || // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH + (0xCD79 <= code && code <= 0xCD93) || // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH + (0xCD95 <= code && code <= 0xCDAF) || // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH + (0xCDB1 <= code && code <= 0xCDCB) || // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH + (0xCDCD <= code && code <= 0xCDE7) || // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH + (0xCDE9 <= code && code <= 0xCE03) || // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH + (0xCE05 <= code && code <= 0xCE1F) || // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH + (0xCE21 <= code && code <= 0xCE3B) || // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH + (0xCE3D <= code && code <= 0xCE57) || // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH + (0xCE59 <= code && code <= 0xCE73) || // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH + (0xCE75 <= code && code <= 0xCE8F) || // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH + (0xCE91 <= code && code <= 0xCEAB) || // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH + (0xCEAD <= code && code <= 0xCEC7) || // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH + (0xCEC9 <= code && code <= 0xCEE3) || // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH + (0xCEE5 <= code && code <= 0xCEFF) || // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH + (0xCF01 <= code && code <= 0xCF1B) || // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH + (0xCF1D <= code && code <= 0xCF37) || // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH + (0xCF39 <= code && code <= 0xCF53) || // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH + (0xCF55 <= code && code <= 0xCF6F) || // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH + (0xCF71 <= code && code <= 0xCF8B) || // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH + (0xCF8D <= code && code <= 0xCFA7) || // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH + (0xCFA9 <= code && code <= 0xCFC3) || // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH + (0xCFC5 <= code && code <= 0xCFDF) || // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH + (0xCFE1 <= code && code <= 0xCFFB) || // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH + (0xCFFD <= code && code <= 0xD017) || // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH + (0xD019 <= code && code <= 0xD033) || // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH + (0xD035 <= code && code <= 0xD04F) || // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH + (0xD051 <= code && code <= 0xD06B) || // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH + (0xD06D <= code && code <= 0xD087) || // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH + (0xD089 <= code && code <= 0xD0A3) || // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH + (0xD0A5 <= code && code <= 0xD0BF) || // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH + (0xD0C1 <= code && code <= 0xD0DB) || // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH + (0xD0DD <= code && code <= 0xD0F7) || // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH + (0xD0F9 <= code && code <= 0xD113) || // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH + (0xD115 <= code && code <= 0xD12F) || // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH + (0xD131 <= code && code <= 0xD14B) || // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH + (0xD14D <= code && code <= 0xD167) || // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH + (0xD169 <= code && code <= 0xD183) || // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH + (0xD185 <= code && code <= 0xD19F) || // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH + (0xD1A1 <= code && code <= 0xD1BB) || // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH + (0xD1BD <= code && code <= 0xD1D7) || // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH + (0xD1D9 <= code && code <= 0xD1F3) || // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH + (0xD1F5 <= code && code <= 0xD20F) || // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH + (0xD211 <= code && code <= 0xD22B) || // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH + (0xD22D <= code && code <= 0xD247) || // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH + (0xD249 <= code && code <= 0xD263) || // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH + (0xD265 <= code && code <= 0xD27F) || // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH + (0xD281 <= code && code <= 0xD29B) || // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH + (0xD29D <= code && code <= 0xD2B7) || // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH + (0xD2B9 <= code && code <= 0xD2D3) || // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH + (0xD2D5 <= code && code <= 0xD2EF) || // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH + (0xD2F1 <= code && code <= 0xD30B) || // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH + (0xD30D <= code && code <= 0xD327) || // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH + (0xD329 <= code && code <= 0xD343) || // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH + (0xD345 <= code && code <= 0xD35F) || // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH + (0xD361 <= code && code <= 0xD37B) || // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH + (0xD37D <= code && code <= 0xD397) || // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH + (0xD399 <= code && code <= 0xD3B3) || // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH + (0xD3B5 <= code && code <= 0xD3CF) || // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH + (0xD3D1 <= code && code <= 0xD3EB) || // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH + (0xD3ED <= code && code <= 0xD407) || // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH + (0xD409 <= code && code <= 0xD423) || // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH + (0xD425 <= code && code <= 0xD43F) || // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH + (0xD441 <= code && code <= 0xD45B) || // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH + (0xD45D <= code && code <= 0xD477) || // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH + (0xD479 <= code && code <= 0xD493) || // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH + (0xD495 <= code && code <= 0xD4AF) || // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH + (0xD4B1 <= code && code <= 0xD4CB) || // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH + (0xD4CD <= code && code <= 0xD4E7) || // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH + (0xD4E9 <= code && code <= 0xD503) || // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH + (0xD505 <= code && code <= 0xD51F) || // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH + (0xD521 <= code && code <= 0xD53B) || // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH + (0xD53D <= code && code <= 0xD557) || // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH + (0xD559 <= code && code <= 0xD573) || // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH + (0xD575 <= code && code <= 0xD58F) || // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH + (0xD591 <= code && code <= 0xD5AB) || // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH + (0xD5AD <= code && code <= 0xD5C7) || // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH + (0xD5C9 <= code && code <= 0xD5E3) || // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH + (0xD5E5 <= code && code <= 0xD5FF) || // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH + (0xD601 <= code && code <= 0xD61B) || // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH + (0xD61D <= code && code <= 0xD637) || // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH + (0xD639 <= code && code <= 0xD653) || // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH + (0xD655 <= code && code <= 0xD66F) || // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH + (0xD671 <= code && code <= 0xD68B) || // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH + (0xD68D <= code && code <= 0xD6A7) || // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH + (0xD6A9 <= code && code <= 0xD6C3) || // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH + (0xD6C5 <= code && code <= 0xD6DF) || // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH + (0xD6E1 <= code && code <= 0xD6FB) || // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH + (0xD6FD <= code && code <= 0xD717) || // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH + (0xD719 <= code && code <= 0xD733) || // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH + (0xD735 <= code && code <= 0xD74F) || // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH + (0xD751 <= code && code <= 0xD76B) || // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH + (0xD76D <= code && code <= 0xD787) || // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH + (0xD789 <= code && code <= 0xD7A3) // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH + ){ + return LVT; + } + + if( + 0x261D == code || // So WHITE UP POINTING INDEX + 0x26F9 == code || // So PERSON WITH BALL + (0x270A <= code && code <= 0x270D) || // So [4] RAISED FIST..WRITING HAND + 0x1F385 == code || // So FATHER CHRISTMAS + (0x1F3C2 <= code && code <= 0x1F3C4) || // So [3] SNOWBOARDER..SURFER + 0x1F3C7 == code || // So HORSE RACING + (0x1F3CA <= code && code <= 0x1F3CC) || // So [3] SWIMMER..GOLFER + (0x1F442 <= code && code <= 0x1F443) || // So [2] EAR..NOSE + (0x1F446 <= code && code <= 0x1F450) || // So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN + 0x1F46E == code || // So POLICE OFFICER + (0x1F470 <= code && code <= 0x1F478) || // So [9] BRIDE WITH VEIL..PRINCESS + 0x1F47C == code || // So BABY ANGEL + (0x1F481 <= code && code <= 0x1F483) || // So [3] INFORMATION DESK PERSON..DANCER + (0x1F485 <= code && code <= 0x1F487) || // So [3] NAIL POLISH..HAIRCUT + 0x1F4AA == code || // So FLEXED BICEPS + (0x1F574 <= code && code <= 0x1F575) || // So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY + 0x1F57A == code || // So MAN DANCING + 0x1F590 == code || // So RAISED HAND WITH FINGERS SPLAYED + (0x1F595 <= code && code <= 0x1F596) || // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS + (0x1F645 <= code && code <= 0x1F647) || // So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY + (0x1F64B <= code && code <= 0x1F64F) || // So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS + 0x1F6A3 == code || // So ROWBOAT + (0x1F6B4 <= code && code <= 0x1F6B6) || // So [3] BICYCLIST..PEDESTRIAN + 0x1F6C0 == code || // So BATH + 0x1F6CC == code || // So SLEEPING ACCOMMODATION + (0x1F918 <= code && code <= 0x1F91C) || // So [5] SIGN OF THE HORNS..RIGHT-FACING FIST + (0x1F91E <= code && code <= 0x1F91F) || // So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN + 0x1F926 == code || // So FACE PALM + (0x1F930 <= code && code <= 0x1F939) || // So [10] PREGNANT WOMAN..JUGGLING + (0x1F93D <= code && code <= 0x1F93E) || // So [2] WATER POLO..HANDBALL + (0x1F9D1 <= code && code <= 0x1F9DD) // So [13] ADULT..ELF + ){ + return E_Base; + } + + if( + (0x1F3FB <= code && code <= 0x1F3FF) // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 + ){ + return E_Modifier; + } + + if( + 0x200D == code // Cf ZERO WIDTH JOINER + ){ + return ZWJ; + } + + if( + 0x2640 == code || // So FEMALE SIGN + 0x2642 == code || // So MALE SIGN + (0x2695 <= code && code <= 0x2696) || // So [2] STAFF OF AESCULAPIUS..SCALES + 0x2708 == code || // So AIRPLANE + 0x2764 == code || // So HEAVY BLACK HEART + 0x1F308 == code || // So RAINBOW + 0x1F33E == code || // So EAR OF RICE + 0x1F373 == code || // So COOKING + 0x1F393 == code || // So GRADUATION CAP + 0x1F3A4 == code || // So MICROPHONE + 0x1F3A8 == code || // So ARTIST PALETTE + 0x1F3EB == code || // So SCHOOL + 0x1F3ED == code || // So FACTORY + 0x1F48B == code || // So KISS MARK + (0x1F4BB <= code && code <= 0x1F4BC) || // So [2] PERSONAL COMPUTER..BRIEFCASE + 0x1F527 == code || // So WRENCH + 0x1F52C == code || // So MICROSCOPE + 0x1F5E8 == code || // So LEFT SPEECH BUBBLE + 0x1F680 == code || // So ROCKET + 0x1F692 == code // So FIRE ENGINE + ){ + return Glue_After_Zwj; + } + + if( + (0x1F466 <= code && code <= 0x1F469) // So [4] BOY..WOMAN + ){ + return E_Base_GAZ; + } + + + //all unlisted characters have a grapheme break property of "Other" + return Other; + } + return this; +} + +if (typeof module != 'undefined' && module.exports) { + module.exports = GraphemeSplitter; +} diff --git a/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep2.js b/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep2.js new file mode 100644 index 00000000000..6f2049fe0f1 --- /dev/null +++ b/packages/rspack-test-tools/tests/normalCases/parsing/evaluate-binary/deep2.js @@ -0,0 +1,3205 @@ +/* +Language: ISBL +Author: Dmitriy Tarasov +Description: built-in language DIRECTUM +Category: enterprise +*/ + +function isbl(hljs) { + // Определение идентификаторов + const UNDERSCORE_IDENT_RE = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*"; + + // Определение имен функций + const FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*"; + + // keyword : ключевые слова + const KEYWORD = + "and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока " + + "except exitfor finally foreach все if если in в not не or или try while пока "; + + // SYSRES Constants + const sysres_constants = + "SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT " + + "SYSRES_CONST_ACCES_RIGHT_TYPE_FULL " + + "SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW " + + "SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW " + + "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_VIEW " + + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE " + + "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE " + + "SYSRES_CONST_ACCESS_TYPE_CHANGE " + + "SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE " + + "SYSRES_CONST_ACCESS_TYPE_EXISTS " + + "SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE " + + "SYSRES_CONST_ACCESS_TYPE_FULL " + + "SYSRES_CONST_ACCESS_TYPE_FULL_CODE " + + "SYSRES_CONST_ACCESS_TYPE_VIEW " + + "SYSRES_CONST_ACCESS_TYPE_VIEW_CODE " + + "SYSRES_CONST_ACTION_TYPE_ABORT " + + "SYSRES_CONST_ACTION_TYPE_ACCEPT " + + "SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS " + + "SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT " + + "SYSRES_CONST_ACTION_TYPE_CHANGE_CARD " + + "SYSRES_CONST_ACTION_TYPE_CHANGE_KIND " + + "SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE " + + "SYSRES_CONST_ACTION_TYPE_CONTINUE " + + "SYSRES_CONST_ACTION_TYPE_COPY " + + "SYSRES_CONST_ACTION_TYPE_CREATE " + + "SYSRES_CONST_ACTION_TYPE_CREATE_VERSION " + + "SYSRES_CONST_ACTION_TYPE_DELETE " + + "SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT " + + "SYSRES_CONST_ACTION_TYPE_DELETE_VERSION " + + "SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS " + + "SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS " + + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE " + + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD " + + "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD " + + "SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK " + + "SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK " + + "SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK " + + "SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK " + + "SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE " + + "SYSRES_CONST_ACTION_TYPE_LOCK " + + "SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER " + + "SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY " + + "SYSRES_CONST_ACTION_TYPE_MARK_AS_READED " + + "SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED " + + "SYSRES_CONST_ACTION_TYPE_MODIFY " + + "SYSRES_CONST_ACTION_TYPE_MODIFY_CARD " + + "SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE " + + "SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION " + + "SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE " + + "SYSRES_CONST_ACTION_TYPE_PERFORM " + + "SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY " + + "SYSRES_CONST_ACTION_TYPE_RESTART " + + "SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE " + + "SYSRES_CONST_ACTION_TYPE_REVISION " + + "SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL " + + "SYSRES_CONST_ACTION_TYPE_SIGN " + + "SYSRES_CONST_ACTION_TYPE_START " + + "SYSRES_CONST_ACTION_TYPE_UNLOCK " + + "SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER " + + "SYSRES_CONST_ACTION_TYPE_VERSION_STATE " + + "SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY " + + "SYSRES_CONST_ACTION_TYPE_VIEW " + + "SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY " + + "SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY " + + "SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY " + + "SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE " + + "SYSRES_CONST_ADD_REFERENCE_MODE_NAME " + + "SYSRES_CONST_ADDITION_REQUISITE_CODE " + + "SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE " + + "SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME " + + "SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME " + + "SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME " + + "SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE " + + "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION " + + "SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS " + + "SYSRES_CONST_ALL_USERS_GROUP " + + "SYSRES_CONST_ALL_USERS_GROUP_NAME " + + "SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME " + + "SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE " + + "SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME " + + "SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_APPROVING_SIGNATURE_NAME " + + "SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE " + + "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE " + + "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE " + + "SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN " + + "SYSRES_CONST_ATTACH_TYPE_DOC " + + "SYSRES_CONST_ATTACH_TYPE_EDOC " + + "SYSRES_CONST_ATTACH_TYPE_FOLDER " + + "SYSRES_CONST_ATTACH_TYPE_JOB " + + "SYSRES_CONST_ATTACH_TYPE_REFERENCE " + + "SYSRES_CONST_ATTACH_TYPE_TASK " + + "SYSRES_CONST_AUTH_ENCODED_PASSWORD " + + "SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE " + + "SYSRES_CONST_AUTH_NOVELL " + + "SYSRES_CONST_AUTH_PASSWORD " + + "SYSRES_CONST_AUTH_PASSWORD_CODE " + + "SYSRES_CONST_AUTH_WINDOWS " + + "SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME " + + "SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE " + + "SYSRES_CONST_AUTO_ENUM_METHOD_FLAG " + + "SYSRES_CONST_AUTO_NUMERATION_CODE " + + "SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG " + + "SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE " + + "SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE " + + "SYSRES_CONST_AUTOTEXT_USAGE_ALL " + + "SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE " + + "SYSRES_CONST_AUTOTEXT_USAGE_SIGN " + + "SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE " + + "SYSRES_CONST_AUTOTEXT_USAGE_WORK " + + "SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE " + + "SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE " + + "SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE " + + "SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE " + + "SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE " + + "SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_BTN_PART " + + "SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE " + + "SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE " + + "SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE " + + "SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT " + + "SYSRES_CONST_CARD_PART " + + "SYSRES_CONST_CARD_REFERENCE_MODE_NAME " + + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE " + + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE " + + "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE " + + "SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE " + + "SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE " + + "SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE " + + "SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE " + + "SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE " + + "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE " + + "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT " + + "SYSRES_CONST_CODE_COMPONENT_TYPE_URL " + + "SYSRES_CONST_CODE_REQUISITE_ACCESS " + + "SYSRES_CONST_CODE_REQUISITE_CODE " + + "SYSRES_CONST_CODE_REQUISITE_COMPONENT " + + "SYSRES_CONST_CODE_REQUISITE_DESCRIPTION " + + "SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT " + + "SYSRES_CONST_CODE_REQUISITE_RECORD " + + "SYSRES_CONST_COMMENT_REQ_CODE " + + "SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE " + + "SYSRES_CONST_COMP_CODE_GRD " + + "SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS " + + "SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS " + + "SYSRES_CONST_COMPONENT_TYPE_DOCS " + + "SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS " + + "SYSRES_CONST_COMPONENT_TYPE_EDOCS " + + "SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " + + "SYSRES_CONST_COMPONENT_TYPE_OTHER " + + "SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES " + + "SYSRES_CONST_COMPONENT_TYPE_REFERENCES " + + "SYSRES_CONST_COMPONENT_TYPE_REPORTS " + + "SYSRES_CONST_COMPONENT_TYPE_SCRIPTS " + + "SYSRES_CONST_COMPONENT_TYPE_URL " + + "SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE " + + "SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION " + + "SYSRES_CONST_CONST_FIRM_STATUS_COMMON " + + "SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL " + + "SYSRES_CONST_CONST_NEGATIVE_VALUE " + + "SYSRES_CONST_CONST_POSITIVE_VALUE " + + "SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE " + + "SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE " + + "SYSRES_CONST_CONTENTS_REQUISITE_CODE " + + "SYSRES_CONST_DATA_TYPE_BOOLEAN " + + "SYSRES_CONST_DATA_TYPE_DATE " + + "SYSRES_CONST_DATA_TYPE_FLOAT " + + "SYSRES_CONST_DATA_TYPE_INTEGER " + + "SYSRES_CONST_DATA_TYPE_PICK " + + "SYSRES_CONST_DATA_TYPE_REFERENCE " + + "SYSRES_CONST_DATA_TYPE_STRING " + + "SYSRES_CONST_DATA_TYPE_TEXT " + + "SYSRES_CONST_DATA_TYPE_VARIANT " + + "SYSRES_CONST_DATE_CLOSE_REQ_CODE " + + "SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR " + + "SYSRES_CONST_DATE_OPEN_REQ_CODE " + + "SYSRES_CONST_DATE_REQUISITE " + + "SYSRES_CONST_DATE_REQUISITE_CODE " + + "SYSRES_CONST_DATE_REQUISITE_NAME " + + "SYSRES_CONST_DATE_REQUISITE_TYPE " + + "SYSRES_CONST_DATE_TYPE_CHAR " + + "SYSRES_CONST_DATETIME_FORMAT_VALUE " + + "SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE " + + "SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE " + + "SYSRES_CONST_DESCRIPTION_REQUISITE_CODE " + + "SYSRES_CONST_DET1_PART " + + "SYSRES_CONST_DET2_PART " + + "SYSRES_CONST_DET3_PART " + + "SYSRES_CONST_DET4_PART " + + "SYSRES_CONST_DET5_PART " + + "SYSRES_CONST_DET6_PART " + + "SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE " + + "SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE " + + "SYSRES_CONST_DETAIL_REQ_CODE " + + "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE " + + "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME " + + "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE " + + "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME " + + "SYSRES_CONST_DOCUMENT_STORAGES_CODE " + + "SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME " + + "SYSRES_CONST_DOUBLE_REQUISITE_CODE " + + "SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE " + + "SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE " + + "SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE " + + "SYSRES_CONST_EDITORS_REFERENCE_CODE " + + "SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE " + + "SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE " + + "SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE " + + "SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE " + + "SYSRES_CONST_EDOC_DATE_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_KIND_REFERENCE_CODE " + + "SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE " + + "SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE " + + "SYSRES_CONST_EDOC_NONE_ENCODE_CODE " + + "SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE " + + "SYSRES_CONST_EDOC_READONLY_ACCESS_CODE " + + "SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE " + + "SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE " + + "SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE " + + "SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE " + + "SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE " + + "SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE " + + "SYSRES_CONST_EDOC_WRITE_ACCES_CODE " + + "SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " + + "SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE " + + "SYSRES_CONST_END_DATE_REQUISITE_CODE " + + "SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE " + + "SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE " + + "SYSRES_CONST_EXIST_CONST " + + "SYSRES_CONST_EXIST_VALUE " + + "SYSRES_CONST_EXPORT_LOCK_TYPE_ASK " + + "SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK " + + "SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK " + + "SYSRES_CONST_EXPORT_VERSION_TYPE_ASK " + + "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST " + + "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE " + + "SYSRES_CONST_EXTENSION_REQUISITE_CODE " + + "SYSRES_CONST_FILTER_NAME_REQUISITE_CODE " + + "SYSRES_CONST_FILTER_REQUISITE_CODE " + + "SYSRES_CONST_FILTER_TYPE_COMMON_CODE " + + "SYSRES_CONST_FILTER_TYPE_COMMON_NAME " + + "SYSRES_CONST_FILTER_TYPE_USER_CODE " + + "SYSRES_CONST_FILTER_TYPE_USER_NAME " + + "SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME " + + "SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR " + + "SYSRES_CONST_FLOAT_REQUISITE_TYPE " + + "SYSRES_CONST_FOLDER_AUTHOR_VALUE " + + "SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS " + + "SYSRES_CONST_FOLDER_KIND_COMPONENTS " + + "SYSRES_CONST_FOLDER_KIND_EDOCS " + + "SYSRES_CONST_FOLDER_KIND_JOBS " + + "SYSRES_CONST_FOLDER_KIND_TASKS " + + "SYSRES_CONST_FOLDER_TYPE_COMMON " + + "SYSRES_CONST_FOLDER_TYPE_COMPONENT " + + "SYSRES_CONST_FOLDER_TYPE_FAVORITES " + + "SYSRES_CONST_FOLDER_TYPE_INBOX " + + "SYSRES_CONST_FOLDER_TYPE_OUTBOX " + + "SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH " + + "SYSRES_CONST_FOLDER_TYPE_SEARCH " + + "SYSRES_CONST_FOLDER_TYPE_SHORTCUTS " + + "SYSRES_CONST_FOLDER_TYPE_USER " + + "SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG " + + "SYSRES_CONST_FULL_SUBSTITUTE_TYPE " + + "SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE " + + "SYSRES_CONST_FUNCTION_CANCEL_RESULT " + + "SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM " + + "SYSRES_CONST_FUNCTION_CATEGORY_USER " + + "SYSRES_CONST_FUNCTION_FAILURE_RESULT " + + "SYSRES_CONST_FUNCTION_SAVE_RESULT " + + "SYSRES_CONST_GENERATED_REQUISITE " + + "SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE " + + "SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE " + + "SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME " + + "SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE " + + "SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME " + + "SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE " + + "SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE " + + "SYSRES_CONST_GROUP_NAME_REQUISITE_CODE " + + "SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE " + + "SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE " + + "SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE " + + "SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE " + + "SYSRES_CONST_GROUP_USER_REQUISITE_CODE " + + "SYSRES_CONST_GROUPS_REFERENCE_CODE " + + "SYSRES_CONST_GROUPS_REQUISITE_CODE " + + "SYSRES_CONST_HIDDEN_MODE_NAME " + + "SYSRES_CONST_HIGH_LVL_REQUISITE_CODE " + + "SYSRES_CONST_HISTORY_ACTION_CREATE_CODE " + + "SYSRES_CONST_HISTORY_ACTION_DELETE_CODE " + + "SYSRES_CONST_HISTORY_ACTION_EDIT_CODE " + + "SYSRES_CONST_HOUR_CHAR " + + "SYSRES_CONST_ID_REQUISITE_CODE " + + "SYSRES_CONST_IDSPS_REQUISITE_CODE " + + "SYSRES_CONST_IMAGE_MODE_COLOR " + + "SYSRES_CONST_IMAGE_MODE_GREYSCALE " + + "SYSRES_CONST_IMAGE_MODE_MONOCHROME " + + "SYSRES_CONST_IMPORTANCE_HIGH " + + "SYSRES_CONST_IMPORTANCE_LOW " + + "SYSRES_CONST_IMPORTANCE_NORMAL " + + "SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE " + + "SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE " + + "SYSRES_CONST_INT_REQUISITE " + + "SYSRES_CONST_INT_REQUISITE_TYPE " + + "SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR " + + "SYSRES_CONST_INTEGER_TYPE_CHAR " + + "SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE " + + "SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE " + + "SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE " + + "SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE " + + "SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE " + + "SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE " + + "SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE " + + "SYSRES_CONST_JOB_BLOCK_DESCRIPTION " + + "SYSRES_CONST_JOB_KIND_CONTROL_JOB " + + "SYSRES_CONST_JOB_KIND_JOB " + + "SYSRES_CONST_JOB_KIND_NOTICE " + + "SYSRES_CONST_JOB_STATE_ABORTED " + + "SYSRES_CONST_JOB_STATE_COMPLETE " + + "SYSRES_CONST_JOB_STATE_WORKING " + + "SYSRES_CONST_KIND_REQUISITE_CODE " + + "SYSRES_CONST_KIND_REQUISITE_NAME " + + "SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE " + + "SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE " + + "SYSRES_CONST_KOD_INPUT_TYPE " + + "SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE " + + "SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE " + + "SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT " + + "SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT " + + "SYSRES_CONST_LINK_OBJECT_KIND_EDOC " + + "SYSRES_CONST_LINK_OBJECT_KIND_FOLDER " + + "SYSRES_CONST_LINK_OBJECT_KIND_JOB " + + "SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE " + + "SYSRES_CONST_LINK_OBJECT_KIND_TASK " + + "SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_LIST_REFERENCE_MODE_NAME " + + "SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE " + + "SYSRES_CONST_MAIN_VIEW_CODE " + + "SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG " + + "SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE " + + "SYSRES_CONST_MAXIMIZED_MODE_NAME " + + "SYSRES_CONST_ME_VALUE " + + "SYSRES_CONST_MESSAGE_ATTENTION_CAPTION " + + "SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION " + + "SYSRES_CONST_MESSAGE_ERROR_CAPTION " + + "SYSRES_CONST_MESSAGE_INFORMATION_CAPTION " + + "SYSRES_CONST_MINIMIZED_MODE_NAME " + + "SYSRES_CONST_MINUTE_CHAR " + + "SYSRES_CONST_MODULE_REQUISITE_CODE " + + "SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION " + + "SYSRES_CONST_MONTH_FORMAT_VALUE " + + "SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE " + + "SYSRES_CONST_NAME_REQUISITE_CODE " + + "SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE " + + "SYSRES_CONST_NAMEAN_INPUT_TYPE " + + "SYSRES_CONST_NEGATIVE_PICK_VALUE " + + "SYSRES_CONST_NEGATIVE_VALUE " + + "SYSRES_CONST_NO " + + "SYSRES_CONST_NO_PICK_VALUE " + + "SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE " + + "SYSRES_CONST_NO_VALUE " + + "SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE " + + "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE " + + "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE " + + "SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE " + + "SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE " + + "SYSRES_CONST_NORMAL_MODE_NAME " + + "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE " + + "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME " + + "SYSRES_CONST_NOTE_REQUISITE_CODE " + + "SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION " + + "SYSRES_CONST_NUM_REQUISITE " + + "SYSRES_CONST_NUM_STR_REQUISITE_CODE " + + "SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG " + + "SYSRES_CONST_NUMERATION_AUTO_STRONG " + + "SYSRES_CONST_NUMERATION_FROM_DICTONARY " + + "SYSRES_CONST_NUMERATION_MANUAL " + + "SYSRES_CONST_NUMERIC_TYPE_CHAR " + + "SYSRES_CONST_NUMREQ_REQUISITE_CODE " + + "SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE " + + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE " + + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE " + + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE " + + "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE " + + "SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX " + + "SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_ORIGINALREF_REQUISITE_CODE " + + "SYSRES_CONST_OURFIRM_REF_CODE " + + "SYSRES_CONST_OURFIRM_REQUISITE_CODE " + + "SYSRES_CONST_OURFIRM_VAR " + + "SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE " + + "SYSRES_CONST_PICK_NEGATIVE_RESULT " + + "SYSRES_CONST_PICK_POSITIVE_RESULT " + + "SYSRES_CONST_PICK_REQUISITE " + + "SYSRES_CONST_PICK_REQUISITE_TYPE " + + "SYSRES_CONST_PICK_TYPE_CHAR " + + "SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE " + + "SYSRES_CONST_PLATFORM_VERSION_COMMENT " + + "SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE " + + "SYSRES_CONST_POSITIVE_PICK_VALUE " + + "SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE " + + "SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE " + + "SYSRES_CONST_PRIORITY_REQUISITE_CODE " + + "SYSRES_CONST_QUALIFIED_TASK_TYPE " + + "SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE " + + "SYSRES_CONST_RECSTAT_REQUISITE_CODE " + + "SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_REF_REQUISITE " + + "SYSRES_CONST_REF_REQUISITE_TYPE " + + "SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " + + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE " + + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE " + + "SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE " + + "SYSRES_CONST_REFERENCE_TYPE_CHAR " + + "SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME " + + "SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE " + + "SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE " + + "SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING " + + "SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN " + + "SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY " + + "SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE " + + "SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL " + + "SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE " + + "SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE " + + "SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE " + + "SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE " + + "SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE " + + "SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE " + + "SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE " + + "SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE " + + "SYSRES_CONST_REQ_MODE_AVAILABLE_CODE " + + "SYSRES_CONST_REQ_MODE_EDIT_CODE " + + "SYSRES_CONST_REQ_MODE_HIDDEN_CODE " + + "SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE " + + "SYSRES_CONST_REQ_MODE_VIEW_CODE " + + "SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE " + + "SYSRES_CONST_REQ_SECTION_VALUE " + + "SYSRES_CONST_REQ_TYPE_VALUE " + + "SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT " + + "SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL " + + "SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME " + + "SYSRES_CONST_REQUISITE_FORMAT_LEFT " + + "SYSRES_CONST_REQUISITE_FORMAT_RIGHT " + + "SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT " + + "SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE " + + "SYSRES_CONST_REQUISITE_SECTION_ACTIONS " + + "SYSRES_CONST_REQUISITE_SECTION_BUTTON " + + "SYSRES_CONST_REQUISITE_SECTION_BUTTONS " + + "SYSRES_CONST_REQUISITE_SECTION_CARD " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE10 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE11 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE12 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE13 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE14 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE15 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE16 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE17 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE18 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE19 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE2 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE20 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE21 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE22 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE23 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE24 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE3 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE4 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE5 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE6 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE7 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE8 " + + "SYSRES_CONST_REQUISITE_SECTION_TABLE9 " + + "SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE " + + "SYSRES_CONST_RIGHT_ALIGNMENT_CODE " + + "SYSRES_CONST_ROLES_REFERENCE_CODE " + + "SYSRES_CONST_ROUTE_STEP_AFTER_RUS " + + "SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS " + + "SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS " + + "SYSRES_CONST_ROUTE_TYPE_COMPLEX " + + "SYSRES_CONST_ROUTE_TYPE_PARALLEL " + + "SYSRES_CONST_ROUTE_TYPE_SERIAL " + + "SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE " + + "SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE " + + "SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE " + + "SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION " + + "SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE " + + "SYSRES_CONST_SEARCHES_COMPONENT_CONTENT " + + "SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME " + + "SYSRES_CONST_SEARCHES_EDOC_CONTENT " + + "SYSRES_CONST_SEARCHES_FOLDER_CONTENT " + + "SYSRES_CONST_SEARCHES_JOB_CONTENT " + + "SYSRES_CONST_SEARCHES_REFERENCE_CODE " + + "SYSRES_CONST_SEARCHES_TASK_CONTENT " + + "SYSRES_CONST_SECOND_CHAR " + + "SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_CODE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE " + + "SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE " + + "SYSRES_CONST_SELECT_REFERENCE_MODE_NAME " + + "SYSRES_CONST_SELECT_TYPE_SELECTABLE " + + "SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD " + + "SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD " + + "SYSRES_CONST_SELECT_TYPE_UNSLECTABLE " + + "SYSRES_CONST_SERVER_TYPE_MAIN " + + "SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE " + + "SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE " + + "SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE " + + "SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE " + + "SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE " + + "SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE " + + "SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE " + + "SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE " + + "SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE " + + "SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE " + + "SYSRES_CONST_STATE_REQ_NAME " + + "SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE " + + "SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE " + + "SYSRES_CONST_STATE_REQUISITE_CODE " + + "SYSRES_CONST_STATIC_ROLE_TYPE_CODE " + + "SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE " + + "SYSRES_CONST_STATUS_VALUE_AUTOCLEANING " + + "SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE " + + "SYSRES_CONST_STATUS_VALUE_COMPLETE " + + "SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE " + + "SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE " + + "SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE " + + "SYSRES_CONST_STATUS_VALUE_RED_SQUARE " + + "SYSRES_CONST_STATUS_VALUE_SUSPEND " + + "SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE " + + "SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE " + + "SYSRES_CONST_STORAGE_TYPE_FILE " + + "SYSRES_CONST_STORAGE_TYPE_SQL_SERVER " + + "SYSRES_CONST_STR_REQUISITE " + + "SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE " + + "SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR " + + "SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR " + + "SYSRES_CONST_STRING_REQUISITE_CODE " + + "SYSRES_CONST_STRING_REQUISITE_TYPE " + + "SYSRES_CONST_STRING_TYPE_CHAR " + + "SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE " + + "SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION " + + "SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE " + + "SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE " + + "SYSRES_CONST_SYSTEM_VERSION_COMMENT " + + "SYSRES_CONST_TASK_ACCESS_TYPE_ALL " + + "SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS " + + "SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL " + + "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION " + + "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD " + + "SYSRES_CONST_TASK_ENCODE_TYPE_NONE " + + "SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD " + + "SYSRES_CONST_TASK_ROUTE_ALL_CONDITION " + + "SYSRES_CONST_TASK_ROUTE_AND_CONDITION " + + "SYSRES_CONST_TASK_ROUTE_OR_CONDITION " + + "SYSRES_CONST_TASK_STATE_ABORTED " + + "SYSRES_CONST_TASK_STATE_COMPLETE " + + "SYSRES_CONST_TASK_STATE_CONTINUED " + + "SYSRES_CONST_TASK_STATE_CONTROL " + + "SYSRES_CONST_TASK_STATE_INIT " + + "SYSRES_CONST_TASK_STATE_WORKING " + + "SYSRES_CONST_TASK_TITLE " + + "SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE " + + "SYSRES_CONST_TASK_TYPES_REFERENCE_CODE " + + "SYSRES_CONST_TEMPLATES_REFERENCE_CODE " + + "SYSRES_CONST_TEST_DATE_REQUISITE_NAME " + + "SYSRES_CONST_TEST_DEV_DATABASE_NAME " + + "SYSRES_CONST_TEST_DEV_SYSTEM_CODE " + + "SYSRES_CONST_TEST_EDMS_DATABASE_NAME " + + "SYSRES_CONST_TEST_EDMS_MAIN_CODE " + + "SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME " + + "SYSRES_CONST_TEST_EDMS_SECOND_CODE " + + "SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME " + + "SYSRES_CONST_TEST_EDMS_SYSTEM_CODE " + + "SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME " + + "SYSRES_CONST_TEXT_REQUISITE " + + "SYSRES_CONST_TEXT_REQUISITE_CODE " + + "SYSRES_CONST_TEXT_REQUISITE_TYPE " + + "SYSRES_CONST_TEXT_TYPE_CHAR " + + "SYSRES_CONST_TYPE_CODE_REQUISITE_CODE " + + "SYSRES_CONST_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR " + + "SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE " + + "SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE " + + "SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE " + + "SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE " + + "SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME " + + "SYSRES_CONST_USE_ACCESS_TYPE_CODE " + + "SYSRES_CONST_USE_ACCESS_TYPE_NAME " + + "SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE " + + "SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE " + + "SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE " + + "SYSRES_CONST_USER_CATEGORY_NORMAL " + + "SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE " + + "SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE " + + "SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE " + + "SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE " + + "SYSRES_CONST_USER_COMMON_CATEGORY " + + "SYSRES_CONST_USER_COMMON_CATEGORY_CODE " + + "SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE " + + "SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_USER_LOGIN_REQUISITE_CODE " + + "SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE " + + "SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE " + + "SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE " + + "SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE " + + "SYSRES_CONST_USER_SERVICE_CATEGORY " + + "SYSRES_CONST_USER_SERVICE_CATEGORY_CODE " + + "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE " + + "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME " + + "SYSRES_CONST_USER_STATUS_DEVELOPER_CODE " + + "SYSRES_CONST_USER_STATUS_DEVELOPER_NAME " + + "SYSRES_CONST_USER_STATUS_DISABLED_CODE " + + "SYSRES_CONST_USER_STATUS_DISABLED_NAME " + + "SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE " + + "SYSRES_CONST_USER_STATUS_USER_CODE " + + "SYSRES_CONST_USER_STATUS_USER_NAME " + + "SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED " + + "SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER " + + "SYSRES_CONST_USER_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE " + + "SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE " + + "SYSRES_CONST_USERS_REFERENCE_CODE " + + "SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME " + + "SYSRES_CONST_USERS_REQUISITE_CODE " + + "SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE " + + "SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE " + + "SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE " + + "SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE " + + "SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE " + + "SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME " + + "SYSRES_CONST_VIEW_DEFAULT_CODE " + + "SYSRES_CONST_VIEW_DEFAULT_NAME " + + "SYSRES_CONST_VIEWER_REQUISITE_CODE " + + "SYSRES_CONST_WAITING_BLOCK_DESCRIPTION " + + "SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING " + + "SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING " + + "SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE " + + "SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE " + + "SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE " + + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE " + + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE " + + "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS " + + "SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS " + + "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD " + + "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT " + + "SYSRES_CONST_XML_ENCODING " + + "SYSRES_CONST_XREC_STAT_REQUISITE_CODE " + + "SYSRES_CONST_XRECID_FIELD_NAME " + + "SYSRES_CONST_YES " + + "SYSRES_CONST_YES_NO_2_REQUISITE_CODE " + + "SYSRES_CONST_YES_NO_REQUISITE_CODE " + + "SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE " + + "SYSRES_CONST_YES_PICK_VALUE " + + "SYSRES_CONST_YES_VALUE "; + + // Base constant + const base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE "; + + // Base group name + const base_group_name_constants = + "ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME "; + + // Decision block properties + const decision_block_properties_constants = + "DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY " + + "DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY "; + + // File extension + const file_extension_constants = + "ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION " + + "SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION "; + + // Job block properties + const job_block_properties_constants = + "JOB_BLOCK_ABORT_DEADLINE_PROPERTY " + + "JOB_BLOCK_AFTER_FINISH_EVENT " + + "JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT " + + "JOB_BLOCK_ATTACHMENT_PROPERTY " + + "JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + + "JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + + "JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT " + + "JOB_BLOCK_BEFORE_START_EVENT " + + "JOB_BLOCK_CREATED_JOBS_PROPERTY " + + "JOB_BLOCK_DEADLINE_PROPERTY " + + "JOB_BLOCK_EXECUTION_RESULTS_PROPERTY " + + "JOB_BLOCK_IS_PARALLEL_PROPERTY " + + "JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " + + "JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + + "JOB_BLOCK_JOB_TEXT_PROPERTY " + + "JOB_BLOCK_NAME_PROPERTY " + + "JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY " + + "JOB_BLOCK_PERFORMER_PROPERTY " + + "JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " + + "JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + + "JOB_BLOCK_SUBJECT_PROPERTY "; + + // Language code + const language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE "; + + // Launching external applications + const launching_external_applications_constants = + "smHidden smMaximized smMinimized smNormal wmNo wmYes "; + + // Link kind + const link_kind_constants = + "COMPONENT_TOKEN_LINK_KIND " + + "DOCUMENT_LINK_KIND " + + "EDOCUMENT_LINK_KIND " + + "FOLDER_LINK_KIND " + + "JOB_LINK_KIND " + + "REFERENCE_LINK_KIND " + + "TASK_LINK_KIND "; + + // Lock type + const lock_type_constants = + "COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE "; + + // Monitor block properties + const monitor_block_properties_constants = + "MONITOR_BLOCK_AFTER_FINISH_EVENT " + + "MONITOR_BLOCK_BEFORE_START_EVENT " + + "MONITOR_BLOCK_DEADLINE_PROPERTY " + + "MONITOR_BLOCK_INTERVAL_PROPERTY " + + "MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY " + + "MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + + "MONITOR_BLOCK_NAME_PROPERTY " + + "MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + + "MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY "; + + // Notice block properties + const notice_block_properties_constants = + "NOTICE_BLOCK_AFTER_FINISH_EVENT " + + "NOTICE_BLOCK_ATTACHMENT_PROPERTY " + + "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + + "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + + "NOTICE_BLOCK_BEFORE_START_EVENT " + + "NOTICE_BLOCK_CREATED_NOTICES_PROPERTY " + + "NOTICE_BLOCK_DEADLINE_PROPERTY " + + "NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + + "NOTICE_BLOCK_NAME_PROPERTY " + + "NOTICE_BLOCK_NOTICE_TEXT_PROPERTY " + + "NOTICE_BLOCK_PERFORMER_PROPERTY " + + "NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + + "NOTICE_BLOCK_SUBJECT_PROPERTY "; + + // Object events + const object_events_constants = + "dseAfterCancel " + + "dseAfterClose " + + "dseAfterDelete " + + "dseAfterDeleteOutOfTransaction " + + "dseAfterInsert " + + "dseAfterOpen " + + "dseAfterScroll " + + "dseAfterUpdate " + + "dseAfterUpdateOutOfTransaction " + + "dseBeforeCancel " + + "dseBeforeClose " + + "dseBeforeDelete " + + "dseBeforeDetailUpdate " + + "dseBeforeInsert " + + "dseBeforeOpen " + + "dseBeforeUpdate " + + "dseOnAnyRequisiteChange " + + "dseOnCloseRecord " + + "dseOnDeleteError " + + "dseOnOpenRecord " + + "dseOnPrepareUpdate " + + "dseOnUpdateError " + + "dseOnUpdateRatifiedRecord " + + "dseOnValidDelete " + + "dseOnValidUpdate " + + "reOnChange " + + "reOnChangeValues " + + "SELECTION_BEGIN_ROUTE_EVENT " + + "SELECTION_END_ROUTE_EVENT "; + + // Object params + const object_params_constants = + "CURRENT_PERIOD_IS_REQUIRED " + + "PREVIOUS_CARD_TYPE_NAME " + + "SHOW_RECORD_PROPERTIES_FORM "; + + // Other + const other_constants = + "ACCESS_RIGHTS_SETTING_DIALOG_CODE " + + "ADMINISTRATOR_USER_CODE " + + "ANALYTIC_REPORT_TYPE " + + "asrtHideLocal " + + "asrtHideRemote " + + "CALCULATED_ROLE_TYPE_CODE " + + "COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE " + + "DCTS_TEST_PROTOCOLS_FOLDER_PATH " + + "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED " + + "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER " + + "E_EDOC_VERSION_ALREDY_SIGNED " + + "E_EDOC_VERSION_ALREDY_SIGNED_BY_USER " + + "EDOC_TYPES_CODE_REQUISITE_FIELD_NAME " + + "EDOCUMENTS_ALIAS_NAME " + + "FILES_FOLDER_PATH " + + "FILTER_OPERANDS_DELIMITER " + + "FILTER_OPERATIONS_DELIMITER " + + "FORMCARD_NAME " + + "FORMLIST_NAME " + + "GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE " + + "GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE " + + "INTEGRATED_REPORT_TYPE " + + "IS_BUILDER_APPLICATION_ROLE " + + "IS_BUILDER_APPLICATION_ROLE2 " + + "IS_BUILDER_USERS " + + "ISBSYSDEV " + + "LOG_FOLDER_PATH " + + "mbCancel " + + "mbNo " + + "mbNoToAll " + + "mbOK " + + "mbYes " + + "mbYesToAll " + + "MEMORY_DATASET_DESRIPTIONS_FILENAME " + + "mrNo " + + "mrNoToAll " + + "mrYes " + + "mrYesToAll " + + "MULTIPLE_SELECT_DIALOG_CODE " + + "NONOPERATING_RECORD_FLAG_FEMININE " + + "NONOPERATING_RECORD_FLAG_MASCULINE " + + "OPERATING_RECORD_FLAG_FEMININE " + + "OPERATING_RECORD_FLAG_MASCULINE " + + "PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE " + + "PROGRAM_INITIATED_LOOKUP_ACTION " + + "ratDelete " + + "ratEdit " + + "ratInsert " + + "REPORT_TYPE " + + "REQUIRED_PICK_VALUES_VARIABLE " + + "rmCard " + + "rmList " + + "SBRTE_PROGID_DEV " + + "SBRTE_PROGID_RELEASE " + + "STATIC_ROLE_TYPE_CODE " + + "SUPPRESS_EMPTY_TEMPLATE_CREATION " + + "SYSTEM_USER_CODE " + + "UPDATE_DIALOG_DATASET " + + "USED_IN_OBJECT_HINT_PARAM " + + "USER_INITIATED_LOOKUP_ACTION " + + "USER_NAME_FORMAT " + + "USER_SELECTION_RESTRICTIONS " + + "WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH " + + "ELS_SUBTYPE_CONTROL_NAME " + + "ELS_FOLDER_KIND_CONTROL_NAME " + + "REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME "; + + // Privileges + const privileges_constants = + "PRIVILEGE_COMPONENT_FULL_ACCESS " + + "PRIVILEGE_DEVELOPMENT_EXPORT " + + "PRIVILEGE_DEVELOPMENT_IMPORT " + + "PRIVILEGE_DOCUMENT_DELETE " + + "PRIVILEGE_ESD " + + "PRIVILEGE_FOLDER_DELETE " + + "PRIVILEGE_MANAGE_ACCESS_RIGHTS " + + "PRIVILEGE_MANAGE_REPLICATION " + + "PRIVILEGE_MANAGE_SESSION_SERVER " + + "PRIVILEGE_OBJECT_FULL_ACCESS " + + "PRIVILEGE_OBJECT_VIEW " + + "PRIVILEGE_RESERVE_LICENSE " + + "PRIVILEGE_SYSTEM_CUSTOMIZE " + + "PRIVILEGE_SYSTEM_DEVELOP " + + "PRIVILEGE_SYSTEM_INSTALL " + + "PRIVILEGE_TASK_DELETE " + + "PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE " + + "PRIVILEGES_PSEUDOREFERENCE_CODE "; + + // Pseudoreference code + const pseudoreference_code_constants = + "ACCESS_TYPES_PSEUDOREFERENCE_CODE " + + "ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE " + + "ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE " + + "ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE " + + "AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE " + + "COMPONENTS_PSEUDOREFERENCE_CODE " + + "FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE " + + "GROUPS_PSEUDOREFERENCE_CODE " + + "RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE " + + "REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE " + + "REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE " + + "REFTYPES_PSEUDOREFERENCE_CODE " + + "REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE " + + "SEND_PROTOCOL_PSEUDOREFERENCE_CODE " + + "SUBSTITUTES_PSEUDOREFERENCE_CODE " + + "SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE " + + "UNITS_PSEUDOREFERENCE_CODE " + + "USERS_PSEUDOREFERENCE_CODE " + + "VIEWERS_PSEUDOREFERENCE_CODE "; + + // Requisite ISBCertificateType values + const requisite_ISBCertificateType_values_constants = + "CERTIFICATE_TYPE_ENCRYPT " + + "CERTIFICATE_TYPE_SIGN " + + "CERTIFICATE_TYPE_SIGN_AND_ENCRYPT "; + + // Requisite ISBEDocStorageType values + const requisite_ISBEDocStorageType_values_constants = + "STORAGE_TYPE_FILE " + + "STORAGE_TYPE_NAS_CIFS " + + "STORAGE_TYPE_SAPERION " + + "STORAGE_TYPE_SQL_SERVER "; + + // Requisite CompType2 values + const requisite_compType2_values_constants = + "COMPTYPE2_REQUISITE_DOCUMENTS_VALUE " + + "COMPTYPE2_REQUISITE_TASKS_VALUE " + + "COMPTYPE2_REQUISITE_FOLDERS_VALUE " + + "COMPTYPE2_REQUISITE_REFERENCES_VALUE "; + + // Requisite name + const requisite_name_constants = + "SYSREQ_CODE " + + "SYSREQ_COMPTYPE2 " + + "SYSREQ_CONST_AVAILABLE_FOR_WEB " + + "SYSREQ_CONST_COMMON_CODE " + + "SYSREQ_CONST_COMMON_VALUE " + + "SYSREQ_CONST_FIRM_CODE " + + "SYSREQ_CONST_FIRM_STATUS " + + "SYSREQ_CONST_FIRM_VALUE " + + "SYSREQ_CONST_SERVER_STATUS " + + "SYSREQ_CONTENTS " + + "SYSREQ_DATE_OPEN " + + "SYSREQ_DATE_CLOSE " + + "SYSREQ_DESCRIPTION " + + "SYSREQ_DESCRIPTION_LOCALIZE_ID " + + "SYSREQ_DOUBLE " + + "SYSREQ_EDOC_ACCESS_TYPE " + + "SYSREQ_EDOC_AUTHOR " + + "SYSREQ_EDOC_CREATED " + + "SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE " + + "SYSREQ_EDOC_EDITOR " + + "SYSREQ_EDOC_ENCODE_TYPE " + + "SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME " + + "SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION " + + "SYSREQ_EDOC_EXPORT_DATE " + + "SYSREQ_EDOC_EXPORTER " + + "SYSREQ_EDOC_KIND " + + "SYSREQ_EDOC_LIFE_STAGE_NAME " + + "SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE " + + "SYSREQ_EDOC_MODIFIED " + + "SYSREQ_EDOC_NAME " + + "SYSREQ_EDOC_NOTE " + + "SYSREQ_EDOC_QUALIFIED_ID " + + "SYSREQ_EDOC_SESSION_KEY " + + "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME " + + "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION " + + "SYSREQ_EDOC_SIGNATURE_TYPE " + + "SYSREQ_EDOC_SIGNED " + + "SYSREQ_EDOC_STORAGE " + + "SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE " + + "SYSREQ_EDOC_STORAGES_CHECK_RIGHTS " + + "SYSREQ_EDOC_STORAGES_COMPUTER_NAME " + + "SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE " + + "SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE " + + "SYSREQ_EDOC_STORAGES_FUNCTION " + + "SYSREQ_EDOC_STORAGES_INITIALIZED " + + "SYSREQ_EDOC_STORAGES_LOCAL_PATH " + + "SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME " + + "SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT " + + "SYSREQ_EDOC_STORAGES_SERVER_NAME " + + "SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME " + + "SYSREQ_EDOC_STORAGES_TYPE " + + "SYSREQ_EDOC_TEXT_MODIFIED " + + "SYSREQ_EDOC_TYPE_ACT_CODE " + + "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION " + + "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " + + "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE " + + "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS " + + "SYSREQ_EDOC_TYPE_ACT_SECTION " + + "SYSREQ_EDOC_TYPE_ADD_PARAMS " + + "SYSREQ_EDOC_TYPE_COMMENT " + + "SYSREQ_EDOC_TYPE_EVENT_TEXT " + + "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR " + + "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " + + "SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID " + + "SYSREQ_EDOC_TYPE_NUMERATION_METHOD " + + "SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE " + + "SYSREQ_EDOC_TYPE_REQ_CODE " + + "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION " + + "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " + + "SYSREQ_EDOC_TYPE_REQ_IS_LEADING " + + "SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED " + + "SYSREQ_EDOC_TYPE_REQ_NUMBER " + + "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE " + + "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS " + + "SYSREQ_EDOC_TYPE_REQ_ON_SELECT " + + "SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND " + + "SYSREQ_EDOC_TYPE_REQ_SECTION " + + "SYSREQ_EDOC_TYPE_VIEW_CARD " + + "SYSREQ_EDOC_TYPE_VIEW_CODE " + + "SYSREQ_EDOC_TYPE_VIEW_COMMENT " + + "SYSREQ_EDOC_TYPE_VIEW_IS_MAIN " + + "SYSREQ_EDOC_TYPE_VIEW_NAME " + + "SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID " + + "SYSREQ_EDOC_VERSION_AUTHOR " + + "SYSREQ_EDOC_VERSION_CRC " + + "SYSREQ_EDOC_VERSION_DATA " + + "SYSREQ_EDOC_VERSION_EDITOR " + + "SYSREQ_EDOC_VERSION_EXPORT_DATE " + + "SYSREQ_EDOC_VERSION_EXPORTER " + + "SYSREQ_EDOC_VERSION_HIDDEN " + + "SYSREQ_EDOC_VERSION_LIFE_STAGE " + + "SYSREQ_EDOC_VERSION_MODIFIED " + + "SYSREQ_EDOC_VERSION_NOTE " + + "SYSREQ_EDOC_VERSION_SIGNATURE_TYPE " + + "SYSREQ_EDOC_VERSION_SIGNED " + + "SYSREQ_EDOC_VERSION_SIZE " + + "SYSREQ_EDOC_VERSION_SOURCE " + + "SYSREQ_EDOC_VERSION_TEXT_MODIFIED " + + "SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE " + + "SYSREQ_FOLDER_KIND " + + "SYSREQ_FUNC_CATEGORY " + + "SYSREQ_FUNC_COMMENT " + + "SYSREQ_FUNC_GROUP " + + "SYSREQ_FUNC_GROUP_COMMENT " + + "SYSREQ_FUNC_GROUP_NUMBER " + + "SYSREQ_FUNC_HELP " + + "SYSREQ_FUNC_PARAM_DEF_VALUE " + + "SYSREQ_FUNC_PARAM_IDENT " + + "SYSREQ_FUNC_PARAM_NUMBER " + + "SYSREQ_FUNC_PARAM_TYPE " + + "SYSREQ_FUNC_TEXT " + + "SYSREQ_GROUP_CATEGORY " + + "SYSREQ_ID " + + "SYSREQ_LAST_UPDATE " + + "SYSREQ_LEADER_REFERENCE " + + "SYSREQ_LINE_NUMBER " + + "SYSREQ_MAIN_RECORD_ID " + + "SYSREQ_NAME " + + "SYSREQ_NAME_LOCALIZE_ID " + + "SYSREQ_NOTE " + + "SYSREQ_ORIGINAL_RECORD " + + "SYSREQ_OUR_FIRM " + + "SYSREQ_PROFILING_SETTINGS_BATCH_LOGING " + + "SYSREQ_PROFILING_SETTINGS_BATCH_SIZE " + + "SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED " + + "SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED " + + "SYSREQ_PROFILING_SETTINGS_START_LOGGED " + + "SYSREQ_RECORD_STATUS " + + "SYSREQ_REF_REQ_FIELD_NAME " + + "SYSREQ_REF_REQ_FORMAT " + + "SYSREQ_REF_REQ_GENERATED " + + "SYSREQ_REF_REQ_LENGTH " + + "SYSREQ_REF_REQ_PRECISION " + + "SYSREQ_REF_REQ_REFERENCE " + + "SYSREQ_REF_REQ_SECTION " + + "SYSREQ_REF_REQ_STORED " + + "SYSREQ_REF_REQ_TOKENS " + + "SYSREQ_REF_REQ_TYPE " + + "SYSREQ_REF_REQ_VIEW " + + "SYSREQ_REF_TYPE_ACT_CODE " + + "SYSREQ_REF_TYPE_ACT_DESCRIPTION " + + "SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " + + "SYSREQ_REF_TYPE_ACT_ON_EXECUTE " + + "SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS " + + "SYSREQ_REF_TYPE_ACT_SECTION " + + "SYSREQ_REF_TYPE_ADD_PARAMS " + + "SYSREQ_REF_TYPE_COMMENT " + + "SYSREQ_REF_TYPE_COMMON_SETTINGS " + + "SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME " + + "SYSREQ_REF_TYPE_EVENT_TEXT " + + "SYSREQ_REF_TYPE_MAIN_LEADING_REF " + + "SYSREQ_REF_TYPE_NAME_IN_SINGULAR " + + "SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " + + "SYSREQ_REF_TYPE_NAME_LOCALIZE_ID " + + "SYSREQ_REF_TYPE_NUMERATION_METHOD " + + "SYSREQ_REF_TYPE_REQ_CODE " + + "SYSREQ_REF_TYPE_REQ_DESCRIPTION " + + "SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " + + "SYSREQ_REF_TYPE_REQ_IS_CONTROL " + + "SYSREQ_REF_TYPE_REQ_IS_FILTER " + + "SYSREQ_REF_TYPE_REQ_IS_LEADING " + + "SYSREQ_REF_TYPE_REQ_IS_REQUIRED " + + "SYSREQ_REF_TYPE_REQ_NUMBER " + + "SYSREQ_REF_TYPE_REQ_ON_CHANGE " + + "SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS " + + "SYSREQ_REF_TYPE_REQ_ON_SELECT " + + "SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND " + + "SYSREQ_REF_TYPE_REQ_SECTION " + + "SYSREQ_REF_TYPE_VIEW_CARD " + + "SYSREQ_REF_TYPE_VIEW_CODE " + + "SYSREQ_REF_TYPE_VIEW_COMMENT " + + "SYSREQ_REF_TYPE_VIEW_IS_MAIN " + + "SYSREQ_REF_TYPE_VIEW_NAME " + + "SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID " + + "SYSREQ_REFERENCE_TYPE_ID " + + "SYSREQ_STATE " + + "SYSREQ_STATЕ " + + "SYSREQ_SYSTEM_SETTINGS_VALUE " + + "SYSREQ_TYPE " + + "SYSREQ_UNIT " + + "SYSREQ_UNIT_ID " + + "SYSREQ_USER_GROUPS_GROUP_FULL_NAME " + + "SYSREQ_USER_GROUPS_GROUP_NAME " + + "SYSREQ_USER_GROUPS_GROUP_SERVER_NAME " + + "SYSREQ_USERS_ACCESS_RIGHTS " + + "SYSREQ_USERS_AUTHENTICATION " + + "SYSREQ_USERS_CATEGORY " + + "SYSREQ_USERS_COMPONENT " + + "SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC " + + "SYSREQ_USERS_DOMAIN " + + "SYSREQ_USERS_FULL_USER_NAME " + + "SYSREQ_USERS_GROUP " + + "SYSREQ_USERS_IS_MAIN_SERVER " + + "SYSREQ_USERS_LOGIN " + + "SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC " + + "SYSREQ_USERS_STATUS " + + "SYSREQ_USERS_USER_CERTIFICATE " + + "SYSREQ_USERS_USER_CERTIFICATE_INFO " + + "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME " + + "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION " + + "SYSREQ_USERS_USER_CERTIFICATE_STATE " + + "SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME " + + "SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT " + + "SYSREQ_USERS_USER_DEFAULT_CERTIFICATE " + + "SYSREQ_USERS_USER_DESCRIPTION " + + "SYSREQ_USERS_USER_GLOBAL_NAME " + + "SYSREQ_USERS_USER_LOGIN " + + "SYSREQ_USERS_USER_MAIN_SERVER " + + "SYSREQ_USERS_USER_TYPE " + + "SYSREQ_WORK_RULES_FOLDER_ID "; + + // Result + const result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG "; + + // Rule identification + const rule_identification_constants = + "AUTO_NUMERATION_RULE_ID " + + "CANT_CHANGE_ID_REQUISITE_RULE_ID " + + "CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID " + + "CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID " + + "CHECK_CODE_REQUISITE_RULE_ID " + + "CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID " + + "CHECK_FILTRATER_CHANGES_RULE_ID " + + "CHECK_RECORD_INTERVAL_RULE_ID " + + "CHECK_REFERENCE_INTERVAL_RULE_ID " + + "CHECK_REQUIRED_DATA_FULLNESS_RULE_ID " + + "CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID " + + "MAKE_RECORD_UNRATIFIED_RULE_ID " + + "RESTORE_AUTO_NUMERATION_RULE_ID " + + "SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID " + + "SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID " + + "SET_IDSPS_VALUE_RULE_ID " + + "SET_NEXT_CODE_VALUE_RULE_ID " + + "SET_OURFIRM_BOUNDS_RULE_ID " + + "SET_OURFIRM_REQUISITE_RULE_ID "; + + // Script block properties + const script_block_properties_constants = + "SCRIPT_BLOCK_AFTER_FINISH_EVENT " + + "SCRIPT_BLOCK_BEFORE_START_EVENT " + + "SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY " + + "SCRIPT_BLOCK_NAME_PROPERTY " + + "SCRIPT_BLOCK_SCRIPT_PROPERTY "; + + // Subtask block properties + const subtask_block_properties_constants = + "SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY " + + "SUBTASK_BLOCK_AFTER_FINISH_EVENT " + + "SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT " + + "SUBTASK_BLOCK_ATTACHMENTS_PROPERTY " + + "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " + + "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " + + "SUBTASK_BLOCK_BEFORE_START_EVENT " + + "SUBTASK_BLOCK_CREATED_TASK_PROPERTY " + + "SUBTASK_BLOCK_CREATION_EVENT " + + "SUBTASK_BLOCK_DEADLINE_PROPERTY " + + "SUBTASK_BLOCK_IMPORTANCE_PROPERTY " + + "SUBTASK_BLOCK_INITIATOR_PROPERTY " + + "SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " + + "SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + + "SUBTASK_BLOCK_JOBS_TYPE_PROPERTY " + + "SUBTASK_BLOCK_NAME_PROPERTY " + + "SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY " + + "SUBTASK_BLOCK_PERFORMERS_PROPERTY " + + "SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " + + "SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " + + "SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY " + + "SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY " + + "SUBTASK_BLOCK_START_EVENT " + + "SUBTASK_BLOCK_STEP_CONTROL_PROPERTY " + + "SUBTASK_BLOCK_SUBJECT_PROPERTY " + + "SUBTASK_BLOCK_TASK_CONTROL_PROPERTY " + + "SUBTASK_BLOCK_TEXT_PROPERTY " + + "SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY " + + "SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY " + + "SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY "; + + // System component + const system_component_constants = + "SYSCOMP_CONTROL_JOBS " + + "SYSCOMP_FOLDERS " + + "SYSCOMP_JOBS " + + "SYSCOMP_NOTICES " + + "SYSCOMP_TASKS "; + + // System dialogs + const system_dialogs_constants = + "SYSDLG_CREATE_EDOCUMENT " + + "SYSDLG_CREATE_EDOCUMENT_VERSION " + + "SYSDLG_CURRENT_PERIOD " + + "SYSDLG_EDIT_FUNCTION_HELP " + + "SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE " + + "SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS " + + "SYSDLG_EXPORT_SINGLE_EDOCUMENT " + + "SYSDLG_IMPORT_EDOCUMENT " + + "SYSDLG_MULTIPLE_SELECT " + + "SYSDLG_SETUP_ACCESS_RIGHTS " + + "SYSDLG_SETUP_DEFAULT_RIGHTS " + + "SYSDLG_SETUP_FILTER_CONDITION " + + "SYSDLG_SETUP_SIGN_RIGHTS " + + "SYSDLG_SETUP_TASK_OBSERVERS " + + "SYSDLG_SETUP_TASK_ROUTE " + + "SYSDLG_SETUP_USERS_LIST " + + "SYSDLG_SIGN_EDOCUMENT " + + "SYSDLG_SIGN_MULTIPLE_EDOCUMENTS "; + + // System reference names + const system_reference_names_constants = + "SYSREF_ACCESS_RIGHTS_TYPES " + + "SYSREF_ADMINISTRATION_HISTORY " + + "SYSREF_ALL_AVAILABLE_COMPONENTS " + + "SYSREF_ALL_AVAILABLE_PRIVILEGES " + + "SYSREF_ALL_REPLICATING_COMPONENTS " + + "SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS " + + "SYSREF_CALENDAR_EVENTS " + + "SYSREF_COMPONENT_TOKEN_HISTORY " + + "SYSREF_COMPONENT_TOKENS " + + "SYSREF_COMPONENTS " + + "SYSREF_CONSTANTS " + + "SYSREF_DATA_RECEIVE_PROTOCOL " + + "SYSREF_DATA_SEND_PROTOCOL " + + "SYSREF_DIALOGS " + + "SYSREF_DIALOGS_REQUISITES " + + "SYSREF_EDITORS " + + "SYSREF_EDOC_CARDS " + + "SYSREF_EDOC_TYPES " + + "SYSREF_EDOCUMENT_CARD_REQUISITES " + + "SYSREF_EDOCUMENT_CARD_TYPES " + + "SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE " + + "SYSREF_EDOCUMENT_CARDS " + + "SYSREF_EDOCUMENT_HISTORY " + + "SYSREF_EDOCUMENT_KINDS " + + "SYSREF_EDOCUMENT_REQUISITES " + + "SYSREF_EDOCUMENT_SIGNATURES " + + "SYSREF_EDOCUMENT_TEMPLATES " + + "SYSREF_EDOCUMENT_TEXT_STORAGES " + + "SYSREF_EDOCUMENT_VIEWS " + + "SYSREF_FILTERER_SETUP_CONFLICTS " + + "SYSREF_FILTRATER_SETTING_CONFLICTS " + + "SYSREF_FOLDER_HISTORY " + + "SYSREF_FOLDERS " + + "SYSREF_FUNCTION_GROUPS " + + "SYSREF_FUNCTION_PARAMS " + + "SYSREF_FUNCTIONS " + + "SYSREF_JOB_HISTORY " + + "SYSREF_LINKS " + + "SYSREF_LOCALIZATION_DICTIONARY " + + "SYSREF_LOCALIZATION_LANGUAGES " + + "SYSREF_MODULES " + + "SYSREF_PRIVILEGES " + + "SYSREF_RECORD_HISTORY " + + "SYSREF_REFERENCE_REQUISITES " + + "SYSREF_REFERENCE_TYPE_VIEWS " + + "SYSREF_REFERENCE_TYPES " + + "SYSREF_REFERENCES " + + "SYSREF_REFERENCES_REQUISITES " + + "SYSREF_REMOTE_SERVERS " + + "SYSREF_REPLICATION_SESSIONS_LOG " + + "SYSREF_REPLICATION_SESSIONS_PROTOCOL " + + "SYSREF_REPORTS " + + "SYSREF_ROLES " + + "SYSREF_ROUTE_BLOCK_GROUPS " + + "SYSREF_ROUTE_BLOCKS " + + "SYSREF_SCRIPTS " + + "SYSREF_SEARCHES " + + "SYSREF_SERVER_EVENTS " + + "SYSREF_SERVER_EVENTS_HISTORY " + + "SYSREF_STANDARD_ROUTE_GROUPS " + + "SYSREF_STANDARD_ROUTES " + + "SYSREF_STATUSES " + + "SYSREF_SYSTEM_SETTINGS " + + "SYSREF_TASK_HISTORY " + + "SYSREF_TASK_KIND_GROUPS " + + "SYSREF_TASK_KINDS " + + "SYSREF_TASK_RIGHTS " + + "SYSREF_TASK_SIGNATURES " + + "SYSREF_TASKS " + + "SYSREF_UNITS " + + "SYSREF_USER_GROUPS " + + "SYSREF_USER_GROUPS_REFERENCE " + + "SYSREF_USER_SUBSTITUTION " + + "SYSREF_USERS " + + "SYSREF_USERS_REFERENCE " + + "SYSREF_VIEWERS " + + "SYSREF_WORKING_TIME_CALENDARS "; + + // Table name + const table_name_constants = + "ACCESS_RIGHTS_TABLE_NAME " + + "EDMS_ACCESS_TABLE_NAME " + + "EDOC_TYPES_TABLE_NAME "; + + // Test + const test_constants = + "TEST_DEV_DB_NAME " + + "TEST_DEV_SYSTEM_CODE " + + "TEST_EDMS_DB_NAME " + + "TEST_EDMS_MAIN_CODE " + + "TEST_EDMS_MAIN_DB_NAME " + + "TEST_EDMS_SECOND_CODE " + + "TEST_EDMS_SECOND_DB_NAME " + + "TEST_EDMS_SYSTEM_CODE " + + "TEST_ISB5_MAIN_CODE " + + "TEST_ISB5_SECOND_CODE " + + "TEST_SQL_SERVER_2005_NAME " + + "TEST_SQL_SERVER_NAME "; + + // Using the dialog windows + const using_the_dialog_windows_constants = + "ATTENTION_CAPTION " + + "cbsCommandLinks " + + "cbsDefault " + + "CONFIRMATION_CAPTION " + + "ERROR_CAPTION " + + "INFORMATION_CAPTION " + + "mrCancel " + + "mrOk "; + + // Using the document + const using_the_document_constants = + "EDOC_VERSION_ACTIVE_STAGE_CODE " + + "EDOC_VERSION_DESIGN_STAGE_CODE " + + "EDOC_VERSION_OBSOLETE_STAGE_CODE "; + + // Using the EA and encryption + const using_the_EA_and_encryption_constants = + "cpDataEnciphermentEnabled " + + "cpDigitalSignatureEnabled " + + "cpID " + + "cpIssuer " + + "cpPluginVersion " + + "cpSerial " + + "cpSubjectName " + + "cpSubjSimpleName " + + "cpValidFromDate " + + "cpValidToDate "; + + // Using the ISBL-editor + const using_the_ISBL_editor_constants = + "ISBL_SYNTAX " + "NO_SYNTAX " + "XML_SYNTAX "; + + // Wait block properties + const wait_block_properties_constants = + "WAIT_BLOCK_AFTER_FINISH_EVENT " + + "WAIT_BLOCK_BEFORE_START_EVENT " + + "WAIT_BLOCK_DEADLINE_PROPERTY " + + "WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " + + "WAIT_BLOCK_NAME_PROPERTY " + + "WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY "; + + // SYSRES Common + const sysres_common_constants = + "SYSRES_COMMON " + + "SYSRES_CONST " + + "SYSRES_MBFUNC " + + "SYSRES_SBDATA " + + "SYSRES_SBGUI " + + "SYSRES_SBINTF " + + "SYSRES_SBREFDSC " + + "SYSRES_SQLERRORS " + + "SYSRES_SYSCOMP "; + + // Константы ==> built_in + const CONSTANTS = + sysres_constants + + base_constants + + base_group_name_constants + + decision_block_properties_constants + + file_extension_constants + + job_block_properties_constants + + language_code_constants + + launching_external_applications_constants + + link_kind_constants + + lock_type_constants + + monitor_block_properties_constants + + notice_block_properties_constants + + object_events_constants + + object_params_constants + + other_constants + + privileges_constants + + pseudoreference_code_constants + + requisite_ISBCertificateType_values_constants + + requisite_ISBEDocStorageType_values_constants + + requisite_compType2_values_constants + + requisite_name_constants + + result_constants + + rule_identification_constants + + script_block_properties_constants + + subtask_block_properties_constants + + system_component_constants + + system_dialogs_constants + + system_reference_names_constants + + table_name_constants + + test_constants + + using_the_dialog_windows_constants + + using_the_document_constants + + using_the_EA_and_encryption_constants + + using_the_ISBL_editor_constants + + wait_block_properties_constants + + sysres_common_constants; + + // enum TAccountType + const TAccountType = "atUser atGroup atRole "; + + // enum TActionEnabledMode + const TActionEnabledMode = + "aemEnabledAlways " + + "aemDisabledAlways " + + "aemEnabledOnBrowse " + + "aemEnabledOnEdit " + + "aemDisabledOnBrowseEmpty "; + + // enum TAddPosition + const TAddPosition = "apBegin apEnd "; + + // enum TAlignment + const TAlignment = "alLeft alRight "; + + // enum TAreaShowMode + const TAreaShowMode = + "asmNever " + + "asmNoButCustomize " + + "asmAsLastTime " + + "asmYesButCustomize " + + "asmAlways "; + + // enum TCertificateInvalidationReason + const TCertificateInvalidationReason = "cirCommon cirRevoked "; + + // enum TCertificateType + const TCertificateType = "ctSignature ctEncode ctSignatureEncode "; + + // enum TCheckListBoxItemState + const TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed "; + + // enum TCloseOnEsc + const TCloseOnEsc = "ceISB ceAlways ceNever "; + + // enum TCompType + const TCompType = + "ctDocument " + + "ctReference " + + "ctScript " + + "ctUnknown " + + "ctReport " + + "ctDialog " + + "ctFunction " + + "ctFolder " + + "ctEDocument " + + "ctTask " + + "ctJob " + + "ctNotice " + + "ctControlJob "; + + // enum TConditionFormat + const TConditionFormat = "cfInternal cfDisplay "; + + // enum TConnectionIntent + const TConnectionIntent = "ciUnspecified ciWrite ciRead "; + + // enum TContentKind + const TContentKind = + "ckFolder " + + "ckEDocument " + + "ckTask " + + "ckJob " + + "ckComponentToken " + + "ckAny " + + "ckReference " + + "ckScript " + + "ckReport " + + "ckDialog "; + + // enum TControlType + const TControlType = + "ctISBLEditor " + + "ctBevel " + + "ctButton " + + "ctCheckListBox " + + "ctComboBox " + + "ctComboEdit " + + "ctGrid " + + "ctDBCheckBox " + + "ctDBComboBox " + + "ctDBEdit " + + "ctDBEllipsis " + + "ctDBMemo " + + "ctDBNavigator " + + "ctDBRadioGroup " + + "ctDBStatusLabel " + + "ctEdit " + + "ctGroupBox " + + "ctInplaceHint " + + "ctMemo " + + "ctPanel " + + "ctListBox " + + "ctRadioButton " + + "ctRichEdit " + + "ctTabSheet " + + "ctWebBrowser " + + "ctImage " + + "ctHyperLink " + + "ctLabel " + + "ctDBMultiEllipsis " + + "ctRibbon " + + "ctRichView " + + "ctInnerPanel " + + "ctPanelGroup " + + "ctBitButton "; + + // enum TCriterionContentType + const TCriterionContentType = + "cctDate " + + "cctInteger " + + "cctNumeric " + + "cctPick " + + "cctReference " + + "cctString " + + "cctText "; + + // enum TCultureType + const TCultureType = "cltInternal cltPrimary cltGUI "; + + // enum TDataSetEventType + const TDataSetEventType = + "dseBeforeOpen " + + "dseAfterOpen " + + "dseBeforeClose " + + "dseAfterClose " + + "dseOnValidDelete " + + "dseBeforeDelete " + + "dseAfterDelete " + + "dseAfterDeleteOutOfTransaction " + + "dseOnDeleteError " + + "dseBeforeInsert " + + "dseAfterInsert " + + "dseOnValidUpdate " + + "dseBeforeUpdate " + + "dseOnUpdateRatifiedRecord " + + "dseAfterUpdate " + + "dseAfterUpdateOutOfTransaction " + + "dseOnUpdateError " + + "dseAfterScroll " + + "dseOnOpenRecord " + + "dseOnCloseRecord " + + "dseBeforeCancel " + + "dseAfterCancel " + + "dseOnUpdateDeadlockError " + + "dseBeforeDetailUpdate " + + "dseOnPrepareUpdate " + + "dseOnAnyRequisiteChange "; + + // enum TDataSetState + const TDataSetState = "dssEdit dssInsert dssBrowse dssInActive "; + + // enum TDateFormatType + const TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp "; + + // enum TDateOffsetType + const TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds "; + + // enum TDateTimeKind + const TDateTimeKind = "dtkndLocal dtkndUTC "; + + // enum TDeaAccessRights + const TDeaAccessRights = "arNone arView arEdit arFull "; + + // enum TDocumentDefaultAction + const TDocumentDefaultAction = "ddaView ddaEdit "; + + // enum TEditMode + const TEditMode = + "emLock " + + "emEdit " + + "emSign " + + "emExportWithLock " + + "emImportWithUnlock " + + "emChangeVersionNote " + + "emOpenForModify " + + "emChangeLifeStage " + + "emDelete " + + "emCreateVersion " + + "emImport " + + "emUnlockExportedWithLock " + + "emStart " + + "emAbort " + + "emReInit " + + "emMarkAsReaded " + + "emMarkAsUnreaded " + + "emPerform " + + "emAccept " + + "emResume " + + "emChangeRights " + + "emEditRoute " + + "emEditObserver " + + "emRecoveryFromLocalCopy " + + "emChangeWorkAccessType " + + "emChangeEncodeTypeToCertificate " + + "emChangeEncodeTypeToPassword " + + "emChangeEncodeTypeToNone " + + "emChangeEncodeTypeToCertificatePassword " + + "emChangeStandardRoute " + + "emGetText " + + "emOpenForView " + + "emMoveToStorage " + + "emCreateObject " + + "emChangeVersionHidden " + + "emDeleteVersion " + + "emChangeLifeCycleStage " + + "emApprovingSign " + + "emExport " + + "emContinue " + + "emLockFromEdit " + + "emUnLockForEdit " + + "emLockForServer " + + "emUnlockFromServer " + + "emDelegateAccessRights " + + "emReEncode "; + + // enum TEditorCloseObservType + const TEditorCloseObservType = "ecotFile ecotProcess "; + + // enum TEdmsApplicationAction + const TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute "; + + // enum TEDocumentLockType + const TEDocumentLockType = "edltAll edltNothing edltQuery "; + + // enum TEDocumentStepShowMode + const TEDocumentStepShowMode = "essmText essmCard "; + + // enum TEDocumentStepVersionType + const TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified "; + + // enum TEDocumentStorageFunction + const TEDocumentStorageFunction = "edsfExecutive edsfArchive "; + + // enum TEDocumentStorageType + const TEDocumentStorageType = "edstSQLServer edstFile "; + + // enum TEDocumentVersionSourceType + const TEDocumentVersionSourceType = + "edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile "; + + // enum TEDocumentVersionState + const TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete "; + + // enum TEncodeType + const TEncodeType = "etNone etCertificate etPassword etCertificatePassword "; + + // enum TExceptionCategory + const TExceptionCategory = "ecException ecWarning ecInformation "; + + // enum TExportedSignaturesType + const TExportedSignaturesType = "estAll estApprovingOnly "; + + // enum TExportedVersionType + const TExportedVersionType = "evtLast evtLastActive evtQuery "; + + // enum TFieldDataType + const TFieldDataType = + "fdtString " + + "fdtNumeric " + + "fdtInteger " + + "fdtDate " + + "fdtText " + + "fdtUnknown " + + "fdtWideString " + + "fdtLargeInteger "; + + // enum TFolderType + const TFolderType = + "ftInbox " + + "ftOutbox " + + "ftFavorites " + + "ftCommonFolder " + + "ftUserFolder " + + "ftComponents " + + "ftQuickLaunch " + + "ftShortcuts " + + "ftSearch "; + + // enum TGridRowHeight + const TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 "; + + // enum THyperlinkType + const THyperlinkType = "hltText " + "hltRTF " + "hltHTML "; + + // enum TImageFileFormat + const TImageFileFormat = + "iffBMP " + + "iffJPEG " + + "iffMultiPageTIFF " + + "iffSinglePageTIFF " + + "iffTIFF " + + "iffPNG "; + + // enum TImageMode + const TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome "; + + // enum TImageType + const TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG "; + + // enum TInplaceHintKind + const TInplaceHintKind = + "ikhInformation " + "ikhWarning " + "ikhError " + "ikhNoIcon "; + + // enum TISBLContext + const TISBLContext = + "icUnknown " + + "icScript " + + "icFunction " + + "icIntegratedReport " + + "icAnalyticReport " + + "icDataSetEventHandler " + + "icActionHandler " + + "icFormEventHandler " + + "icLookUpEventHandler " + + "icRequisiteChangeEventHandler " + + "icBeforeSearchEventHandler " + + "icRoleCalculation " + + "icSelectRouteEventHandler " + + "icBlockPropertyCalculation " + + "icBlockQueryParamsEventHandler " + + "icChangeSearchResultEventHandler " + + "icBlockEventHandler " + + "icSubTaskInitEventHandler " + + "icEDocDataSetEventHandler " + + "icEDocLookUpEventHandler " + + "icEDocActionHandler " + + "icEDocFormEventHandler " + + "icEDocRequisiteChangeEventHandler " + + "icStructuredConversionRule " + + "icStructuredConversionEventBefore " + + "icStructuredConversionEventAfter " + + "icWizardEventHandler " + + "icWizardFinishEventHandler " + + "icWizardStepEventHandler " + + "icWizardStepFinishEventHandler " + + "icWizardActionEnableEventHandler " + + "icWizardActionExecuteEventHandler " + + "icCreateJobsHandler " + + "icCreateNoticesHandler " + + "icBeforeLookUpEventHandler " + + "icAfterLookUpEventHandler " + + "icTaskAbortEventHandler " + + "icWorkflowBlockActionHandler " + + "icDialogDataSetEventHandler " + + "icDialogActionHandler " + + "icDialogLookUpEventHandler " + + "icDialogRequisiteChangeEventHandler " + + "icDialogFormEventHandler " + + "icDialogValidCloseEventHandler " + + "icBlockFormEventHandler " + + "icTaskFormEventHandler " + + "icReferenceMethod " + + "icEDocMethod " + + "icDialogMethod " + + "icProcessMessageHandler "; + + // enum TItemShow + const TItemShow = "isShow " + "isHide " + "isByUserSettings "; + + // enum TJobKind + const TJobKind = "jkJob " + "jkNotice " + "jkControlJob "; + + // enum TJoinType + const TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross "; + + // enum TLabelPos + const TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight "; + + // enum TLicensingType + const TLicensingType = "eltPerConnection " + "eltPerUser "; + + // enum TLifeCycleStageFontColor + const TLifeCycleStageFontColor = + "sfcUndefined " + + "sfcBlack " + + "sfcGreen " + + "sfcRed " + + "sfcBlue " + + "sfcOrange " + + "sfcLilac "; + + // enum TLifeCycleStageFontStyle + const TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal "; + + // enum TLockableDevelopmentComponentType + const TLockableDevelopmentComponentType = + "ldctStandardRoute " + + "ldctWizard " + + "ldctScript " + + "ldctFunction " + + "ldctRouteBlock " + + "ldctIntegratedReport " + + "ldctAnalyticReport " + + "ldctReferenceType " + + "ldctEDocumentType " + + "ldctDialog " + + "ldctServerEvents "; + + // enum TMaxRecordCountRestrictionType + const TMaxRecordCountRestrictionType = + "mrcrtNone " + "mrcrtUser " + "mrcrtMaximal " + "mrcrtCustom "; + + // enum TRangeValueType + const TRangeValueType = + "vtEqual " + "vtGreaterOrEqual " + "vtLessOrEqual " + "vtRange "; + + // enum TRelativeDate + const TRelativeDate = + "rdYesterday " + + "rdToday " + + "rdTomorrow " + + "rdThisWeek " + + "rdThisMonth " + + "rdThisYear " + + "rdNextMonth " + + "rdNextWeek " + + "rdLastWeek " + + "rdLastMonth "; + + // enum TReportDestination + const TReportDestination = "rdWindow " + "rdFile " + "rdPrinter "; + + // enum TReqDataType + const TReqDataType = + "rdtString " + + "rdtNumeric " + + "rdtInteger " + + "rdtDate " + + "rdtReference " + + "rdtAccount " + + "rdtText " + + "rdtPick " + + "rdtUnknown " + + "rdtLargeInteger " + + "rdtDocument "; + + // enum TRequisiteEventType + const TRequisiteEventType = "reOnChange " + "reOnChangeValues "; + + // enum TSBTimeType + const TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem "; + + // enum TSearchShowMode + const TSearchShowMode = + "ssmBrowse " + "ssmSelect " + "ssmMultiSelect " + "ssmBrowseModal "; + + // enum TSelectMode + const TSelectMode = "smSelect " + "smLike " + "smCard "; + + // enum TSignatureType + const TSignatureType = "stNone " + "stAuthenticating " + "stApproving "; + + // enum TSignerContentType + const TSignerContentType = "sctString " + "sctStream "; + + // enum TStringsSortType + const TStringsSortType = "sstAnsiSort " + "sstNaturalSort "; + + // enum TStringValueType + const TStringValueType = "svtEqual " + "svtContain "; + + // enum TStructuredObjectAttributeType + const TStructuredObjectAttributeType = + "soatString " + + "soatNumeric " + + "soatInteger " + + "soatDatetime " + + "soatReferenceRecord " + + "soatText " + + "soatPick " + + "soatBoolean " + + "soatEDocument " + + "soatAccount " + + "soatIntegerCollection " + + "soatNumericCollection " + + "soatStringCollection " + + "soatPickCollection " + + "soatDatetimeCollection " + + "soatBooleanCollection " + + "soatReferenceRecordCollection " + + "soatEDocumentCollection " + + "soatAccountCollection " + + "soatContents " + + "soatUnknown "; + + // enum TTaskAbortReason + const TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException "; + + // enum TTextValueType + const TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord "; + + // enum TUserObjectStatus + const TUserObjectStatus = + "usNone " + + "usCompleted " + + "usRedSquare " + + "usBlueSquare " + + "usYellowSquare " + + "usGreenSquare " + + "usOrangeSquare " + + "usPurpleSquare " + + "usFollowUp "; + + // enum TUserType + const TUserType = + "utUnknown " + + "utUser " + + "utDeveloper " + + "utAdministrator " + + "utSystemDeveloper " + + "utDisconnected "; + + // enum TValuesBuildType + const TValuesBuildType = + "btAnd " + "btDetailAnd " + "btOr " + "btNotOr " + "btOnly "; + + // enum TViewMode + const TViewMode = "vmView " + "vmSelect " + "vmNavigation "; + + // enum TViewSelectionMode + const TViewSelectionMode = + "vsmSingle " + "vsmMultiple " + "vsmMultipleCheck " + "vsmNoSelection "; + + // enum TWizardActionType + const TWizardActionType = + "wfatPrevious " + "wfatNext " + "wfatCancel " + "wfatFinish "; + + // enum TWizardFormElementProperty + const TWizardFormElementProperty = + "wfepUndefined " + + "wfepText3 " + + "wfepText6 " + + "wfepText9 " + + "wfepSpinEdit " + + "wfepDropDown " + + "wfepRadioGroup " + + "wfepFlag " + + "wfepText12 " + + "wfepText15 " + + "wfepText18 " + + "wfepText21 " + + "wfepText24 " + + "wfepText27 " + + "wfepText30 " + + "wfepRadioGroupColumn1 " + + "wfepRadioGroupColumn2 " + + "wfepRadioGroupColumn3 "; + + // enum TWizardFormElementType + const TWizardFormElementType = + "wfetQueryParameter " + "wfetText " + "wfetDelimiter " + "wfetLabel "; + + // enum TWizardParamType + const TWizardParamType = + "wptString " + + "wptInteger " + + "wptNumeric " + + "wptBoolean " + + "wptDateTime " + + "wptPick " + + "wptText " + + "wptUser " + + "wptUserList " + + "wptEDocumentInfo " + + "wptEDocumentInfoList " + + "wptReferenceRecordInfo " + + "wptReferenceRecordInfoList " + + "wptFolderInfo " + + "wptTaskInfo " + + "wptContents " + + "wptFileName " + + "wptDate "; + + // enum TWizardStepResult + const TWizardStepResult = + "wsrComplete " + + "wsrGoNext " + + "wsrGoPrevious " + + "wsrCustom " + + "wsrCancel " + + "wsrGoFinal "; + + // enum TWizardStepType + const TWizardStepType = + "wstForm " + + "wstEDocument " + + "wstTaskCard " + + "wstReferenceRecordCard " + + "wstFinal "; + + // enum TWorkAccessType + const TWorkAccessType = "waAll " + "waPerformers " + "waManual "; + + // enum TWorkflowBlockType + const TWorkflowBlockType = + "wsbStart " + + "wsbFinish " + + "wsbNotice " + + "wsbStep " + + "wsbDecision " + + "wsbWait " + + "wsbMonitor " + + "wsbScript " + + "wsbConnector " + + "wsbSubTask " + + "wsbLifeCycleStage " + + "wsbPause "; + + // enum TWorkflowDataType + const TWorkflowDataType = + "wdtInteger " + + "wdtFloat " + + "wdtString " + + "wdtPick " + + "wdtDateTime " + + "wdtBoolean " + + "wdtTask " + + "wdtJob " + + "wdtFolder " + + "wdtEDocument " + + "wdtReferenceRecord " + + "wdtUser " + + "wdtGroup " + + "wdtRole " + + "wdtIntegerCollection " + + "wdtFloatCollection " + + "wdtStringCollection " + + "wdtPickCollection " + + "wdtDateTimeCollection " + + "wdtBooleanCollection " + + "wdtTaskCollection " + + "wdtJobCollection " + + "wdtFolderCollection " + + "wdtEDocumentCollection " + + "wdtReferenceRecordCollection " + + "wdtUserCollection " + + "wdtGroupCollection " + + "wdtRoleCollection " + + "wdtContents " + + "wdtUserList " + + "wdtSearchDescription " + + "wdtDeadLine " + + "wdtPickSet " + + "wdtAccountCollection "; + + // enum TWorkImportance + const TWorkImportance = "wiLow " + "wiNormal " + "wiHigh "; + + // enum TWorkRouteType + const TWorkRouteType = "wrtSoft " + "wrtHard "; + + // enum TWorkState + const TWorkState = + "wsInit " + + "wsRunning " + + "wsDone " + + "wsControlled " + + "wsAborted " + + "wsContinued "; + + // enum TWorkTextBuildingMode + const TWorkTextBuildingMode = + "wtmFull " + "wtmFromCurrent " + "wtmOnlyCurrent "; + + // Перечисления + const ENUMS = + TAccountType + + TActionEnabledMode + + TAddPosition + + TAlignment + + TAreaShowMode + + TCertificateInvalidationReason + + TCertificateType + + TCheckListBoxItemState + + TCloseOnEsc + + TCompType + + TConditionFormat + + TConnectionIntent + + TContentKind + + TControlType + + TCriterionContentType + + TCultureType + + TDataSetEventType + + TDataSetState + + TDateFormatType + + TDateOffsetType + + TDateTimeKind + + TDeaAccessRights + + TDocumentDefaultAction + + TEditMode + + TEditorCloseObservType + + TEdmsApplicationAction + + TEDocumentLockType + + TEDocumentStepShowMode + + TEDocumentStepVersionType + + TEDocumentStorageFunction + + TEDocumentStorageType + + TEDocumentVersionSourceType + + TEDocumentVersionState + + TEncodeType + + TExceptionCategory + + TExportedSignaturesType + + TExportedVersionType + + TFieldDataType + + TFolderType + + TGridRowHeight + + THyperlinkType + + TImageFileFormat + + TImageMode + + TImageType + + TInplaceHintKind + + TISBLContext + + TItemShow + + TJobKind + + TJoinType + + TLabelPos + + TLicensingType + + TLifeCycleStageFontColor + + TLifeCycleStageFontStyle + + TLockableDevelopmentComponentType + + TMaxRecordCountRestrictionType + + TRangeValueType + + TRelativeDate + + TReportDestination + + TReqDataType + + TRequisiteEventType + + TSBTimeType + + TSearchShowMode + + TSelectMode + + TSignatureType + + TSignerContentType + + TStringsSortType + + TStringValueType + + TStructuredObjectAttributeType + + TTaskAbortReason + + TTextValueType + + TUserObjectStatus + + TUserType + + TValuesBuildType + + TViewMode + + TViewSelectionMode + + TWizardActionType + + TWizardFormElementProperty + + TWizardFormElementType + + TWizardParamType + + TWizardStepResult + + TWizardStepType + + TWorkAccessType + + TWorkflowBlockType + + TWorkflowDataType + + TWorkImportance + + TWorkRouteType + + TWorkState + + TWorkTextBuildingMode; + + // Системные функции ==> SYSFUNCTIONS + const system_functions = + "AddSubString " + + "AdjustLineBreaks " + + "AmountInWords " + + "Analysis " + + "ArrayDimCount " + + "ArrayHighBound " + + "ArrayLowBound " + + "ArrayOf " + + "ArrayReDim " + + "Assert " + + "Assigned " + + "BeginOfMonth " + + "BeginOfPeriod " + + "BuildProfilingOperationAnalysis " + + "CallProcedure " + + "CanReadFile " + + "CArrayElement " + + "CDataSetRequisite " + + "ChangeDate " + + "ChangeReferenceDataset " + + "Char " + + "CharPos " + + "CheckParam " + + "CheckParamValue " + + "CompareStrings " + + "ConstantExists " + + "ControlState " + + "ConvertDateStr " + + "Copy " + + "CopyFile " + + "CreateArray " + + "CreateCachedReference " + + "CreateConnection " + + "CreateDialog " + + "CreateDualListDialog " + + "CreateEditor " + + "CreateException " + + "CreateFile " + + "CreateFolderDialog " + + "CreateInputDialog " + + "CreateLinkFile " + + "CreateList " + + "CreateLock " + + "CreateMemoryDataSet " + + "CreateObject " + + "CreateOpenDialog " + + "CreateProgress " + + "CreateQuery " + + "CreateReference " + + "CreateReport " + + "CreateSaveDialog " + + "CreateScript " + + "CreateSQLPivotFunction " + + "CreateStringList " + + "CreateTreeListSelectDialog " + + "CSelectSQL " + + "CSQL " + + "CSubString " + + "CurrentUserID " + + "CurrentUserName " + + "CurrentVersion " + + "DataSetLocateEx " + + "DateDiff " + + "DateTimeDiff " + + "DateToStr " + + "DayOfWeek " + + "DeleteFile " + + "DirectoryExists " + + "DisableCheckAccessRights " + + "DisableCheckFullShowingRestriction " + + "DisableMassTaskSendingRestrictions " + + "DropTable " + + "DupeString " + + "EditText " + + "EnableCheckAccessRights " + + "EnableCheckFullShowingRestriction " + + "EnableMassTaskSendingRestrictions " + + "EndOfMonth " + + "EndOfPeriod " + + "ExceptionExists " + + "ExceptionsOff " + + "ExceptionsOn " + + "Execute " + + "ExecuteProcess " + + "Exit " + + "ExpandEnvironmentVariables " + + "ExtractFileDrive " + + "ExtractFileExt " + + "ExtractFileName " + + "ExtractFilePath " + + "ExtractParams " + + "FileExists " + + "FileSize " + + "FindFile " + + "FindSubString " + + "FirmContext " + + "ForceDirectories " + + "Format " + + "FormatDate " + + "FormatNumeric " + + "FormatSQLDate " + + "FormatString " + + "FreeException " + + "GetComponent " + + "GetComponentLaunchParam " + + "GetConstant " + + "GetLastException " + + "GetReferenceRecord " + + "GetRefTypeByRefID " + + "GetTableID " + + "GetTempFolder " + + "IfThen " + + "In " + + "IndexOf " + + "InputDialog " + + "InputDialogEx " + + "InteractiveMode " + + "IsFileLocked " + + "IsGraphicFile " + + "IsNumeric " + + "Length " + + "LoadString " + + "LoadStringFmt " + + "LocalTimeToUTC " + + "LowerCase " + + "Max " + + "MessageBox " + + "MessageBoxEx " + + "MimeDecodeBinary " + + "MimeDecodeString " + + "MimeEncodeBinary " + + "MimeEncodeString " + + "Min " + + "MoneyInWords " + + "MoveFile " + + "NewID " + + "Now " + + "OpenFile " + + "Ord " + + "Precision " + + "Raise " + + "ReadCertificateFromFile " + + "ReadFile " + + "ReferenceCodeByID " + + "ReferenceNumber " + + "ReferenceRequisiteMode " + + "ReferenceRequisiteValue " + + "RegionDateSettings " + + "RegionNumberSettings " + + "RegionTimeSettings " + + "RegRead " + + "RegWrite " + + "RenameFile " + + "Replace " + + "Round " + + "SelectServerCode " + + "SelectSQL " + + "ServerDateTime " + + "SetConstant " + + "SetManagedFolderFieldsState " + + "ShowConstantsInputDialog " + + "ShowMessage " + + "Sleep " + + "Split " + + "SQL " + + "SQL2XLSTAB " + + "SQLProfilingSendReport " + + "StrToDate " + + "SubString " + + "SubStringCount " + + "SystemSetting " + + "Time " + + "TimeDiff " + + "Today " + + "Transliterate " + + "Trim " + + "UpperCase " + + "UserStatus " + + "UTCToLocalTime " + + "ValidateXML " + + "VarIsClear " + + "VarIsEmpty " + + "VarIsNull " + + "WorkTimeDiff " + + "WriteFile " + + "WriteFileEx " + + "WriteObjectHistory " + + "Анализ " + + "БазаДанных " + + "БлокЕсть " + + "БлокЕстьРасш " + + "БлокИнфо " + + "БлокСнять " + + "БлокСнятьРасш " + + "БлокУстановить " + + "Ввод " + + "ВводМеню " + + "ВедС " + + "ВедСпр " + + "ВерхняяГраницаМассива " + + "ВнешПрогр " + + "Восст " + + "ВременнаяПапка " + + "Время " + + "ВыборSQL " + + "ВыбратьЗапись " + + "ВыделитьСтр " + + "Вызвать " + + "Выполнить " + + "ВыпПрогр " + + "ГрафическийФайл " + + "ГруппаДополнительно " + + "ДатаВремяСерв " + + "ДеньНедели " + + "ДиалогДаНет " + + "ДлинаСтр " + + "ДобПодстр " + + "ЕПусто " + + "ЕслиТо " + + "ЕЧисло " + + "ЗамПодстр " + + "ЗаписьСправочника " + + "ЗначПоляСпр " + + "ИДТипСпр " + + "ИзвлечьДиск " + + "ИзвлечьИмяФайла " + + "ИзвлечьПуть " + + "ИзвлечьРасширение " + + "ИзмДат " + + "ИзменитьРазмерМассива " + + "ИзмеренийМассива " + + "ИмяОрг " + + "ИмяПоляСпр " + + "Индекс " + + "ИндикаторЗакрыть " + + "ИндикаторОткрыть " + + "ИндикаторШаг " + + "ИнтерактивныйРежим " + + "ИтогТблСпр " + + "КодВидВедСпр " + + "КодВидСпрПоИД " + + "КодПоAnalit " + + "КодСимвола " + + "КодСпр " + + "КолПодстр " + + "КолПроп " + + "КонМес " + + "Конст " + + "КонстЕсть " + + "КонстЗнач " + + "КонТран " + + "КопироватьФайл " + + "КопияСтр " + + "КПериод " + + "КСтрТблСпр " + + "Макс " + + "МаксСтрТблСпр " + + "Массив " + + "Меню " + + "МенюРасш " + + "Мин " + + "НаборДанныхНайтиРасш " + + "НаимВидСпр " + + "НаимПоAnalit " + + "НаимСпр " + + "НастроитьПереводыСтрок " + + "НачМес " + + "НачТран " + + "НижняяГраницаМассива " + + "НомерСпр " + + "НПериод " + + "Окно " + + "Окр " + + "Окружение " + + "ОтлИнфДобавить " + + "ОтлИнфУдалить " + + "Отчет " + + "ОтчетАнал " + + "ОтчетИнт " + + "ПапкаСуществует " + + "Пауза " + + "ПВыборSQL " + + "ПереименоватьФайл " + + "Переменные " + + "ПереместитьФайл " + + "Подстр " + + "ПоискПодстр " + + "ПоискСтр " + + "ПолучитьИДТаблицы " + + "ПользовательДополнительно " + + "ПользовательИД " + + "ПользовательИмя " + + "ПользовательСтатус " + + "Прервать " + + "ПроверитьПараметр " + + "ПроверитьПараметрЗнач " + + "ПроверитьУсловие " + + "РазбСтр " + + "РазнВремя " + + "РазнДат " + + "РазнДатаВремя " + + "РазнРабВремя " + + "РегУстВрем " + + "РегУстДат " + + "РегУстЧсл " + + "РедТекст " + + "РеестрЗапись " + + "РеестрСписокИменПарам " + + "РеестрЧтение " + + "РеквСпр " + + "РеквСпрПр " + + "Сегодня " + + "Сейчас " + + "Сервер " + + "СерверПроцессИД " + + "СертификатФайлСчитать " + + "СжПроб " + + "Символ " + + "СистемаДиректумКод " + + "СистемаИнформация " + + "СистемаКод " + + "Содержит " + + "СоединениеЗакрыть " + + "СоединениеОткрыть " + + "СоздатьДиалог " + + "СоздатьДиалогВыбораИзДвухСписков " + + "СоздатьДиалогВыбораПапки " + + "СоздатьДиалогОткрытияФайла " + + "СоздатьДиалогСохраненияФайла " + + "СоздатьЗапрос " + + "СоздатьИндикатор " + + "СоздатьИсключение " + + "СоздатьКэшированныйСправочник " + + "СоздатьМассив " + + "СоздатьНаборДанных " + + "СоздатьОбъект " + + "СоздатьОтчет " + + "СоздатьПапку " + + "СоздатьРедактор " + + "СоздатьСоединение " + + "СоздатьСписок " + + "СоздатьСписокСтрок " + + "СоздатьСправочник " + + "СоздатьСценарий " + + "СоздСпр " + + "СостСпр " + + "Сохр " + + "СохрСпр " + + "СписокСистем " + + "Спр " + + "Справочник " + + "СпрБлокЕсть " + + "СпрБлокСнять " + + "СпрБлокСнятьРасш " + + "СпрБлокУстановить " + + "СпрИзмНабДан " + + "СпрКод " + + "СпрНомер " + + "СпрОбновить " + + "СпрОткрыть " + + "СпрОтменить " + + "СпрПарам " + + "СпрПолеЗнач " + + "СпрПолеИмя " + + "СпрРекв " + + "СпрРеквВведЗн " + + "СпрРеквНовые " + + "СпрРеквПр " + + "СпрРеквПредЗн " + + "СпрРеквРежим " + + "СпрРеквТипТекст " + + "СпрСоздать " + + "СпрСост " + + "СпрСохранить " + + "СпрТблИтог " + + "СпрТблСтр " + + "СпрТблСтрКол " + + "СпрТблСтрМакс " + + "СпрТблСтрМин " + + "СпрТблСтрПред " + + "СпрТблСтрСлед " + + "СпрТблСтрСозд " + + "СпрТблСтрУд " + + "СпрТекПредст " + + "СпрУдалить " + + "СравнитьСтр " + + "СтрВерхРегистр " + + "СтрНижнРегистр " + + "СтрТблСпр " + + "СумПроп " + + "Сценарий " + + "СценарийПарам " + + "ТекВерсия " + + "ТекОрг " + + "Точн " + + "Тран " + + "Транслитерация " + + "УдалитьТаблицу " + + "УдалитьФайл " + + "УдСпр " + + "УдСтрТблСпр " + + "Уст " + + "УстановкиКонстант " + + "ФайлАтрибутСчитать " + + "ФайлАтрибутУстановить " + + "ФайлВремя " + + "ФайлВремяУстановить " + + "ФайлВыбрать " + + "ФайлЗанят " + + "ФайлЗаписать " + + "ФайлИскать " + + "ФайлКопировать " + + "ФайлМожноЧитать " + + "ФайлОткрыть " + + "ФайлПереименовать " + + "ФайлПерекодировать " + + "ФайлПереместить " + + "ФайлПросмотреть " + + "ФайлРазмер " + + "ФайлСоздать " + + "ФайлСсылкаСоздать " + + "ФайлСуществует " + + "ФайлСчитать " + + "ФайлУдалить " + + "ФмтSQLДат " + + "ФмтДат " + + "ФмтСтр " + + "ФмтЧсл " + + "Формат " + + "ЦМассивЭлемент " + + "ЦНаборДанныхРеквизит " + + "ЦПодстр "; + + // Предопределенные переменные ==> built_in + const predefined_variables = + "AltState " + + "Application " + + "CallType " + + "ComponentTokens " + + "CreatedJobs " + + "CreatedNotices " + + "ControlState " + + "DialogResult " + + "Dialogs " + + "EDocuments " + + "EDocumentVersionSource " + + "Folders " + + "GlobalIDs " + + "Job " + + "Jobs " + + "InputValue " + + "LookUpReference " + + "LookUpRequisiteNames " + + "LookUpSearch " + + "Object " + + "ParentComponent " + + "Processes " + + "References " + + "Requisite " + + "ReportName " + + "Reports " + + "Result " + + "Scripts " + + "Searches " + + "SelectedAttachments " + + "SelectedItems " + + "SelectMode " + + "Sender " + + "ServerEvents " + + "ServiceFactory " + + "ShiftState " + + "SubTask " + + "SystemDialogs " + + "Tasks " + + "Wizard " + + "Wizards " + + "Work " + + "ВызовСпособ " + + "ИмяОтчета " + + "РеквЗнач "; + + // Интерфейсы ==> type + const interfaces = + "IApplication " + + "IAccessRights " + + "IAccountRepository " + + "IAccountSelectionRestrictions " + + "IAction " + + "IActionList " + + "IAdministrationHistoryDescription " + + "IAnchors " + + "IApplication " + + "IArchiveInfo " + + "IAttachment " + + "IAttachmentList " + + "ICheckListBox " + + "ICheckPointedList " + + "IColumn " + + "IComponent " + + "IComponentDescription " + + "IComponentToken " + + "IComponentTokenFactory " + + "IComponentTokenInfo " + + "ICompRecordInfo " + + "IConnection " + + "IContents " + + "IControl " + + "IControlJob " + + "IControlJobInfo " + + "IControlList " + + "ICrypto " + + "ICrypto2 " + + "ICustomJob " + + "ICustomJobInfo " + + "ICustomListBox " + + "ICustomObjectWizardStep " + + "ICustomWork " + + "ICustomWorkInfo " + + "IDataSet " + + "IDataSetAccessInfo " + + "IDataSigner " + + "IDateCriterion " + + "IDateRequisite " + + "IDateRequisiteDescription " + + "IDateValue " + + "IDeaAccessRights " + + "IDeaObjectInfo " + + "IDevelopmentComponentLock " + + "IDialog " + + "IDialogFactory " + + "IDialogPickRequisiteItems " + + "IDialogsFactory " + + "IDICSFactory " + + "IDocRequisite " + + "IDocumentInfo " + + "IDualListDialog " + + "IECertificate " + + "IECertificateInfo " + + "IECertificates " + + "IEditControl " + + "IEditorForm " + + "IEdmsExplorer " + + "IEdmsObject " + + "IEdmsObjectDescription " + + "IEdmsObjectFactory " + + "IEdmsObjectInfo " + + "IEDocument " + + "IEDocumentAccessRights " + + "IEDocumentDescription " + + "IEDocumentEditor " + + "IEDocumentFactory " + + "IEDocumentInfo " + + "IEDocumentStorage " + + "IEDocumentVersion " + + "IEDocumentVersionListDialog " + + "IEDocumentVersionSource " + + "IEDocumentWizardStep " + + "IEDocVerSignature " + + "IEDocVersionState " + + "IEnabledMode " + + "IEncodeProvider " + + "IEncrypter " + + "IEvent " + + "IEventList " + + "IException " + + "IExternalEvents " + + "IExternalHandler " + + "IFactory " + + "IField " + + "IFileDialog " + + "IFolder " + + "IFolderDescription " + + "IFolderDialog " + + "IFolderFactory " + + "IFolderInfo " + + "IForEach " + + "IForm " + + "IFormTitle " + + "IFormWizardStep " + + "IGlobalIDFactory " + + "IGlobalIDInfo " + + "IGrid " + + "IHasher " + + "IHistoryDescription " + + "IHyperLinkControl " + + "IImageButton " + + "IImageControl " + + "IInnerPanel " + + "IInplaceHint " + + "IIntegerCriterion " + + "IIntegerList " + + "IIntegerRequisite " + + "IIntegerValue " + + "IISBLEditorForm " + + "IJob " + + "IJobDescription " + + "IJobFactory " + + "IJobForm " + + "IJobInfo " + + "ILabelControl " + + "ILargeIntegerCriterion " + + "ILargeIntegerRequisite " + + "ILargeIntegerValue " + + "ILicenseInfo " + + "ILifeCycleStage " + + "IList " + + "IListBox " + + "ILocalIDInfo " + + "ILocalization " + + "ILock " + + "IMemoryDataSet " + + "IMessagingFactory " + + "IMetadataRepository " + + "INotice " + + "INoticeInfo " + + "INumericCriterion " + + "INumericRequisite " + + "INumericValue " + + "IObject " + + "IObjectDescription " + + "IObjectImporter " + + "IObjectInfo " + + "IObserver " + + "IPanelGroup " + + "IPickCriterion " + + "IPickProperty " + + "IPickRequisite " + + "IPickRequisiteDescription " + + "IPickRequisiteItem " + + "IPickRequisiteItems " + + "IPickValue " + + "IPrivilege " + + "IPrivilegeList " + + "IProcess " + + "IProcessFactory " + + "IProcessMessage " + + "IProgress " + + "IProperty " + + "IPropertyChangeEvent " + + "IQuery " + + "IReference " + + "IReferenceCriterion " + + "IReferenceEnabledMode " + + "IReferenceFactory " + + "IReferenceHistoryDescription " + + "IReferenceInfo " + + "IReferenceRecordCardWizardStep " + + "IReferenceRequisiteDescription " + + "IReferencesFactory " + + "IReferenceValue " + + "IRefRequisite " + + "IReport " + + "IReportFactory " + + "IRequisite " + + "IRequisiteDescription " + + "IRequisiteDescriptionList " + + "IRequisiteFactory " + + "IRichEdit " + + "IRouteStep " + + "IRule " + + "IRuleList " + + "ISchemeBlock " + + "IScript " + + "IScriptFactory " + + "ISearchCriteria " + + "ISearchCriterion " + + "ISearchDescription " + + "ISearchFactory " + + "ISearchFolderInfo " + + "ISearchForObjectDescription " + + "ISearchResultRestrictions " + + "ISecuredContext " + + "ISelectDialog " + + "IServerEvent " + + "IServerEventFactory " + + "IServiceDialog " + + "IServiceFactory " + + "ISignature " + + "ISignProvider " + + "ISignProvider2 " + + "ISignProvider3 " + + "ISimpleCriterion " + + "IStringCriterion " + + "IStringList " + + "IStringRequisite " + + "IStringRequisiteDescription " + + "IStringValue " + + "ISystemDialogsFactory " + + "ISystemInfo " + + "ITabSheet " + + "ITask " + + "ITaskAbortReasonInfo " + + "ITaskCardWizardStep " + + "ITaskDescription " + + "ITaskFactory " + + "ITaskInfo " + + "ITaskRoute " + + "ITextCriterion " + + "ITextRequisite " + + "ITextValue " + + "ITreeListSelectDialog " + + "IUser " + + "IUserList " + + "IValue " + + "IView " + + "IWebBrowserControl " + + "IWizard " + + "IWizardAction " + + "IWizardFactory " + + "IWizardFormElement " + + "IWizardParam " + + "IWizardPickParam " + + "IWizardReferenceParam " + + "IWizardStep " + + "IWorkAccessRights " + + "IWorkDescription " + + "IWorkflowAskableParam " + + "IWorkflowAskableParams " + + "IWorkflowBlock " + + "IWorkflowBlockResult " + + "IWorkflowEnabledMode " + + "IWorkflowParam " + + "IWorkflowPickParam " + + "IWorkflowReferenceParam " + + "IWorkState " + + "IWorkTreeCustomNode " + + "IWorkTreeJobNode " + + "IWorkTreeTaskNode " + + "IXMLEditorForm " + + "SBCrypto "; + + // built_in : встроенные или библиотечные объекты (константы, перечисления) + const BUILTIN = CONSTANTS + ENUMS; + + // class: встроенные наборы значений, системные объекты, фабрики + const CLASS = predefined_variables; + + // literal : примитивные типы + const LITERAL = "null true false nil "; + + // number : числа + const NUMBERS = { + className: "number", + begin: hljs.NUMBER_RE, + relevance: 0 + }; + + // string : строки + const STRINGS = { + className: "string", + variants: [ + { + begin: '"', + end: '"' + }, + { + begin: "'", + end: "'" + } + ] + }; + + // Токены + const DOCTAGS = { + className: "doctag", + begin: "\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b", + relevance: 0 + }; + + // Однострочный комментарий + const ISBL_LINE_COMMENT_MODE = { + className: "comment", + begin: "//", + end: "$", + relevance: 0, + contains: [ + hljs.PHRASAL_WORDS_MODE, + DOCTAGS + ] + }; + + // Многострочный комментарий + const ISBL_BLOCK_COMMENT_MODE = { + className: "comment", + begin: "/\\*", + end: "\\*/", + relevance: 0, + contains: [ + hljs.PHRASAL_WORDS_MODE, + DOCTAGS + ] + }; + + // comment : комментарии + const COMMENTS = { variants: [ + ISBL_LINE_COMMENT_MODE, + ISBL_BLOCK_COMMENT_MODE + ] }; + + // keywords : ключевые слова + const KEYWORDS = { + $pattern: UNDERSCORE_IDENT_RE, + keyword: KEYWORD, + built_in: BUILTIN, + class: CLASS, + literal: LITERAL + }; + + // methods : методы + const METHODS = { + begin: "\\.\\s*" + hljs.UNDERSCORE_IDENT_RE, + keywords: KEYWORDS, + relevance: 0 + }; + + // type : встроенные типы + const TYPES = { + className: "type", + begin: ":[ \\t]*(" + interfaces.trim().replace(/\s/g, "|") + ")", + end: "[ \\t]*=", + excludeEnd: true + }; + + // variables : переменные + const VARIABLES = { + className: "variable", + keywords: KEYWORDS, + begin: UNDERSCORE_IDENT_RE, + relevance: 0, + contains: [ + TYPES, + METHODS + ] + }; + + // Имена функций + const FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\("; + + const TITLE_MODE = { + className: "title", + keywords: { + $pattern: UNDERSCORE_IDENT_RE, + built_in: system_functions + }, + begin: FUNCTION_TITLE, + end: "\\(", + returnBegin: true, + excludeEnd: true + }; + + // function : функции + const FUNCTIONS = { + className: "function", + begin: FUNCTION_TITLE, + end: "\\)$", + returnBegin: true, + keywords: KEYWORDS, + illegal: "[\\[\\]\\|\\$\\?%,~#@]", + contains: [ + TITLE_MODE, + METHODS, + VARIABLES, + STRINGS, + NUMBERS, + COMMENTS + ] + }; + + return { + name: 'ISBL', + case_insensitive: true, + keywords: KEYWORDS, + illegal: "\\$|\\?|%|,|;$|~|#|@| {}) diff --git a/x.mjs b/x.mjs index 2029444ec98..8f3fe452940 100755 --- a/x.mjs +++ b/x.mjs @@ -169,7 +169,7 @@ extractorCommand .command("update") .description("update api extractor snapshots") .action(async function () { - await $`pnpm build:js`; + await $`pnpm -w build:js`; await $`pnpm --filter '@rspack/*' api-extractor --local`; });