node-red-contrib-state
Version:
Shared state with persistence, notification, and history
223 lines (194 loc) • 68 kB
HTML
<!--
The MIT License
Copyright (c) 2020, Loren West and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!-- Registration -->
<script type="text/javascript">
isValidName = function (value) {
let isValid = isValidES2015VarName(value);
$('#node-config-input-valid').css({display: isValid ? 'none' : 'block'});
return isValid;
}
RED.nodes.registerType('shared-state',{
category: 'config', // Palette category
defaults: { // Editable properties
name: {value:"", required:true, validate:isValidName},
lbl: {value:null},
tags: {value:null},
historyCount: {value: 2, required:true},
dataType: {value:null}, // str, bool, num, obj
boolType: {value:null}, // bool, num, str
boolStrTrue: {value:null}, // On, Active, ...
boolStrFalse: {value:null}, // Off, Inactive, ...
precision: {value:null}, // Digits of precision to the right of the decimal point
numMin: {value:null},
numMax: {value:null},
unit: {value:null}, // Valid unit defined in npm:convert-units
saveInterval: {value: "0", required:true},
},
label: function() {
if (this.lbl) {
return this.lbl;
}
if (this.name) {
return this.name;
}
return "New State";
},
oneditprepare: function () {
let node = this;
// Input validations
$("#node-config-input-name").change(function () {
let value = $('#node-config-input-name').val() || '';
isValidName(value);
});
$("#node-config-input-dataType").change(function () {
let value = $('#node-config-input-dataType').val() || 'str';
$('#node-config-input-dataType').val(value);
$('.state-datatype').css({display:'none'});
setTimeout(function() {
$('.state-datatype-' + value).css({display:'inline-block'});
},1);
});
$("#node-config-input-boolType").change(function () {
let value = $('#node-config-input-boolType').val() || 'bool';
$('#node-config-input-boolType').val(value);
$('.state-datatype-bool-str').css({display:value == 'str' ? 'inline' : 'none'});
});
$("#node-config-input-unit").change(function () {
let value = $('#node-config-input-unit').val();
if (value == '--') {
$('#node-config-input-unit').val('');
}
});
// Load the units dropdown. Response is a sorted array of units from convert-units.list()
$.getJSON('shared-state/units', function(units) {
let currentMeasure = '';
let $dropdown = $("#node-config-input-unit").html('<option value="">(unspecified)</option>');
for (i = 0; i < units.length; i++) {
let unit = units[i];
let abbr = unit.abbr;
let measure = unit.measure;
let plural = unit.plural;
let selected = (node.unit == abbr ? ' selected' : '');
if (measure != currentMeasure) {
currentMeasure = measure;
$dropdown.append('<option value="--"></option><option value="--">--- ' + measure.charAt(0).toUpperCase() + measure.slice(1) + ' ---</option>');
}
$dropdown.append('<option value="' + abbr + '"' + selected + '>' + plural.charAt(0).toUpperCase() + plural.slice(1) + ' (' + abbr + ')</option>');
}
});
},
});
</script>
<!-- Properties Editor -->
<script type="text/x-red" data-template-name="shared-state">
<input type="text" id="username" style="width:0;height:0;z-index:-1;position:absolute;left:0;top:0" />
<input type="password" id="password" style="width:0;height:0;z-index:-1;position:absolute;left:0;top:0" />
<div class="form-row">
<label for="node-config-input-name"><i class="fa fa-code fa-fw"></i> State Name</label>
<input type="text" id="node-config-input-name" placeholder="myStateName">
</div>
<div id="node-config-input-valid" style="display:none; margin-bottom: 10px;" class="form-tips">
Error:
<i class="fa fa-tag fa-fw"></i>
State Name is available from the JS node, and must be a valid variable name.
</div>
<div class="form-row">
<label for="node-config-input-lbl"><i class="fa fa-tag fa-fw"></i> Label</label>
<input type="text" id="node-config-input-lbl" placeholder="My State Name (optional)">
</div>
<div class="form-row">
<label for="node-config-input-historyCount"><i class="fa fa-area-chart fa-fw"></i> History</label>
Keep <input style="width: 50px; text-align: right; margin:0 4px; padding: 0px 6px 0 0px;" type="number" min="0" id="node-config-input-historyCount"> items
</div>
<div class="form-tips">
<span>Tip: <i style="width:24px; text-align:center" class="fa fa-area-chart"></i>
Keep this number trim, as history is stored in memory and written to disk on state change.</span>
</div>
<div class="form-row">
<label for="node-config-input-saveInterval"><i class="fa fa-area-chart fa-fw"></i> Saving interval</label>
<input type="number" style="width: 100px" min="0" id="node-config-input-saveInterval"> ms
</div>
<div class="form-tips">
<span>Tip: <i style="width:24px; text-align:center" class="fa fa-area-chart"></i>
This parameter can be used for reducing disk writes which can be useful if performance is critical and state changes quickly.</span>
</div>
<h4><i class="fa fa-cog"></i> Optional metadata</h4>
<div class="form-row">
<label for="node-config-input-dataType"><i class="fa fa-database fa-fw"></i> Data Type</label>
<select style="width:84px" id="node-config-input-dataType">
<option value="str" selected="selected">String</option>
<option value="bool">Boolean</option>
<option value="num">Number</option>
<option value="obj">Object</option>
</select>
<span class="state-datatype state-datatype-bool">
<select style="width:94px" id="node-config-input-boolType">
<option value="bool" selected="selected">true / false</option>
<option value="num">1 / 0</option>
<option value="str">String</option>
</select>
<span class="state-datatype-bool-str">
<input style="width:64px; text-align:center;" type="text" id="node-config-input-boolStrTrue" placeholder="on"> /
<input style="width:64px; text-align:center;" type="text" id="node-config-input-boolStrFalse" placeholder="off">
</span>
</span>
<span class="state-datatype state-datatype-num">
<span style="padding-left: 10px;">unit:</span>
<select style="width:190px" id="node-config-input-unit">
</select>
</span>
<span class="state-datatype state-datatype-num" style="padding: 10px 0 0 95px">
<span style="padding-left: 10px;">min:</span>
<input style="width:64px; text-align:right;" type="number" id="node-config-input-numMin">
<span> max:</span>
<input style="width:64px; text-align:right;" type="number" id="node-config-input-numMax">
<span> precision: </span>
<input type="number" min="0" style="width:40px; text-align:right;" id="node-config-input-precision">
<span> digits</span>
</span>
</div>
<div class="form-row">
<label for="node-config-input-tags"><i class="fa fa-tags fa-fw"></i> Tags</label>
<input type="text" id="node-config-input-tags" placeholder="comma,separated,tags">
</div>
</script>
<!-- Help Text -->
<script type="text/x-red" data-help-name="shared-state">
<h4>Persistent State</h4>
<hr/>
<h4>Elements</h4>
<ul>
<li><b>State Name</b> - Name of the persistent shared state. This is the key used to identify the state, and must be a valid JavaScript variable name.</li>
<li><b>Label</b> - The label that appears on the state node.</li>
<li><b>History</b> - Number of state changes to keep. Set to 0 for no state save or history.</li>
<li><b>Saving interval</b> - Rate limit for saving state changes. Defaults to 0 when every state change is saved to disk.</li>
</ul>
<h4>Optional Metadata</h4>
Expand the state definition with metadata. This can be used to guarantee a data type, convert units, and provide tags to help find state nodes.
<ul>
<li><b>Data Type</b> - Specify a data type to assure the correct JavaScript data type. This performs simple data type conversions when setting state, and can provide additional value such as min/max assurance and unit of measure awareness. States with compatible units of measure can be chained to perform unit converstion.
<li><b>tags</b> - Comma separated list of tags to help classify the state node.</li>
</ul>
</script>
<script type="text/javascript" x-comment="Below is code from npm:is-valid-var-name@1.0.2">
/**
* Allowed first and subsequent characters in a variable name.
*/
const allowedCharactersES2015 = new RegExp('^[$\_\\x41-\\x5A\\x61-\\x7A\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u{01BA}\\u{01BB}\\u{01BC}-\\u{01BF}\\u{01C0}-\\u{01C3}\\u{01C4}-\\u{0293}\\u{0294}\\u{0295}-\\u{02AF}\\u{02B0}-\\u{02C1}\\u{02C6}-\\u{02D1}\\u{02E0}-\\u{02E4}\\u{02EC}\\u{02EE}\\u{0370}-\\u{0373}\\u{0374}\\u{0376}-\\u{0377}\\u{037A}\\u{037B}-\\u{037D}\\u{037F}\\u{0386}\\u{0388}-\\u{038A}\\u{038C}\\u{038E}-\\u{03A1}\\u{03A3}-\\u{03F5}\\u{03F7}-\\u{0481}\\u{048A}-\\u{052F}\\u{0531}-\\u{0556}\\u{0559}\\u{0561}-\\u{0587}\\u{05D0}-\\u{05EA}\\u{05F0}-\\u{05F2}\\u{0620}-\\u{063F}\\u{0640}\\u{0641}-\\u{064A}\\u{066E}-\\u{066F}\\u{0671}-\\u{06D3}\\u{06D5}\\u{06E5}-\\u{06E6}\\u{06EE}-\\u{06EF}\\u{06FA}-\\u{06FC}\\u{06FF}\\u{0710}\\u{0712}-\\u{072F}\\u{074D}-\\u{07A5}\\u{07B1}\\u{07CA}-\\u{07EA}\\u{07F4}-\\u{07F5}\\u{07FA}\\u{0800}-\\u{0815}\\u{081A}\\u{0824}\\u{0828}\\u{0840}-\\u{0858}\\u{08A0}-\\u{08B4}\\u{08B6}-\\u{08BD}\\u{0904}-\\u{0939}\\u{093D}\\u{0950}\\u{0958}-\\u{0961}\\u{0971}\\u{0972}-\\u{0980}\\u{0985}-\\u{098C}\\u{098F}-\\u{0990}\\u{0993}-\\u{09A8}\\u{09AA}-\\u{09B0}\\u{09B2}\\u{09B6}-\\u{09B9}\\u{09BD}\\u{09CE}\\u{09DC}-\\u{09DD}\\u{09DF}-\\u{09E1}\\u{09F0}-\\u{09F1}\\u{0A05}-\\u{0A0A}\\u{0A0F}-\\u{0A10}\\u{0A13}-\\u{0A28}\\u{0A2A}-\\u{0A30}\\u{0A32}-\\u{0A33}\\u{0A35}-\\u{0A36}\\u{0A38}-\\u{0A39}\\u{0A59}-\\u{0A5C}\\u{0A5E}\\u{0A72}-\\u{0A74}\\u{0A85}-\\u{0A8D}\\u{0A8F}-\\u{0A91}\\u{0A93}-\\u{0AA8}\\u{0AAA}-\\u{0AB0}\\u{0AB2}-\\u{0AB3}\\u{0AB5}-\\u{0AB9}\\u{0ABD}\\u{0AD0}\\u{0AE0}-\\u{0AE1}\\u{0AF9}\\u{0B05}-\\u{0B0C}\\u{0B0F}-\\u{0B10}\\u{0B13}-\\u{0B28}\\u{0B2A}-\\u{0B30}\\u{0B32}-\\u{0B33}\\u{0B35}-\\u{0B39}\\u{0B3D}\\u{0B5C}-\\u{0B5D}\\u{0B5F}-\\u{0B61}\\u{0B71}\\u{0B83}\\u{0B85}-\\u{0B8A}\\u{0B8E}-\\u{0B90}\\u{0B92}-\\u{0B95}\\u{0B99}-\\u{0B9A}\\u{0B9C}\\u{0B9E}-\\u{0B9F}\\u{0BA3}-\\u{0BA4}\\u{0BA8}-\\u{0BAA}\\u{0BAE}-\\u{0BB9}\\u{0BD0}\\u{0C05}-\\u{0C0C}\\u{0C0E}-\\u{0C10}\\u{0C12}-\\u{0C28}\\u{0C2A}-\\u{0C39}\\u{0C3D}\\u{0C58}-\\u{0C5A}\\u{0C60}-\\u{0C61}\\u{0C80}\\u{0C85}-\\u{0C8C}\\u{0C8E}-\\u{0C90}\\u{0C92}-\\u{0CA8}\\u{0CAA}-\\u{0CB3}\\u{0CB5}-\\u{0CB9}\\u{0CBD}\\u{0CDE}\\u{0CE0}-\\u{0CE1}\\u{0CF1}-\\u{0CF2}\\u{0D05}-\\u{0D0C}\\u{0D0E}-\\u{0D10}\\u{0D12}-\\u{0D3A}\\u{0D3D}\\u{0D4E}\\u{0D54}-\\u{0D56}\\u{0D5F}-\\u{0D61}\\u{0D7A}-\\u{0D7F}\\u{0D85}-\\u{0D96}\\u{0D9A}-\\u{0DB1}\\u{0DB3}-\\u{0DBB}\\u{0DBD}\\u{0DC0}-\\u{0DC6}\\u{0E01}-\\u{0E30}\\u{0E32}-\\u{0E33}\\u{0E40}-\\u{0E45}\\u{0E46}\\u{0E81}-\\u{0E82}\\u{0E84}\\u{0E87}-\\u{0E88}\\u{0E8A}\\u{0E8D}\\u{0E94}-\\u{0E97}\\u{0E99}-\\u{0E9F}\\u{0EA1}-\\u{0EA3}\\u{0EA5}\\u{0EA7}\\u{0EAA}-\\u{0EAB}\\u{0EAD}-\\u{0EB0}\\u{0EB2}-\\u{0EB3}\\u{0EBD}\\u{0EC0}-\\u{0EC4}\\u{0EC6}\\u{0EDC}-\\u{0EDF}\\u{0F00}\\u{0F40}-\\u{0F47}\\u{0F49}-\\u{0F6C}\\u{0F88}-\\u{0F8C}\\u{1000}-\\u{102A}\\u{103F}\\u{1050}-\\u{1055}\\u{105A}-\\u{105D}\\u{1061}\\u{1065}-\\u{1066}\\u{106E}-\\u{1070}\\u{1075}-\\u{1081}\\u{108E}\\u{10A0}-\\u{10C5}\\u{10C7}\\u{10CD}\\u{10D0}-\\u{10FA}\\u{10FC}\\u{10FD}-\\u{1248}\\u{124A}-\\u{124D}\\u{1250}-\\u{1256}\\u{1258}\\u{125A}-\\u{125D}\\u{1260}-\\u{1288}\\u{128A}-\\u{128D}\\u{1290}-\\u{12B0}\\u{12B2}-\\u{12B5}\\u{12B8}-\\u{12BE}\\u{12C0}\\u{12C2}-\\u{12C5}\\u{12C8}-\\u{12D6}\\u{12D8}-\\u{1310}\\u{1312}-\\u{1315}\\u{1318}-\\u{135A}\\u{1380}-\\u{138F}\\u{13A0}-\\u{13F5}\\u{13F8}-\\u{13FD}\\u{1401}-\\u{166C}\\u{166F}-\\u{167F}\\u{1681}-\\u{169A}\\u{16A0}-\\u{16EA}\\u{16EE}-\\u{16F0}\\u{16F1}-\\u{16F8}\\u{1700}-\\u{170C}\\u{170E}-\\u{1711}\\u{1720}-\\u{1731}\\u{1740}-\\u{1751}\\u{1760}-\\u{176C}\\u{176E}-\\u{1770}\\u{1780}-\\u{17B3}\\u{17D7}\\u{17DC}\\u{1820}-\\u{1842}\\u{1843}\\u{1844}-\\u{1877}\\u{1880}-\\u{1884}\\u{1885}-\\u{1886}\\u{1887}-\\u{18A8}\\u{18AA}\\u{18B0}-\\u{18F5}\\u{1900}-\\u{191E}\\u{1950}-\\u{196D}\\u{1970}-\\u{1974}\\u{1980}-\\u{19AB}\\u{19B0}-\\u{19C9}\\u{1A00}-\\u{1A16}\\u{1A20}-\\u{1A54}\\u{1AA7}\\u{1B05}-\\u{1B33}\\u{1B45}-\\u{1B4B}\\u{1B83}-\\u{1BA0}\\u{1BAE}-\\u{1BAF}\\u{1BBA}-\\u{1BE5}\\u{1C00}-\\u{1C23}\\u{1C4D}-\\u{1C4F}\\u{1C5A}-\\u{1C77}\\u{1C78}-\\u{1C7D}\\u{1C80}-\\u{1C88}\\u{1CE9}-\\u{1CEC}\\u{1CEE}-\\u{1CF1}\\u{1CF5}-\\u{1CF6}\\u{1D00}-\\u{1D2B}\\u{1D2C}-\\u{1D6A}\\u{1D6B}-\\u{1D77}\\u{1D78}\\u{1D79}-\\u{1D9A}\\u{1D9B}-\\u{1DBF}\\u{1E00}-\\u{1F15}\\u{1F18}-\\u{1F1D}\\u{1F20}-\\u{1F45}\\u{1F48}-\\u{1F4D}\\u{1F50}-\\u{1F57}\\u{1F59}\\u{1F5B}\\u{1F5D}\\u{1F5F}-\\u{1F7D}\\u{1F80}-\\u{1FB4}\\u{1FB6}-\\u{1FBC}\\u{1FBE}\\u{1FC2}-\\u{1FC4}\\u{1FC6}-\\u{1FCC}\\u{1FD0}-\\u{1FD3}\\u{1FD6}-\\u{1FDB}\\u{1FE0}-\\u{1FEC}\\u{1FF2}-\\u{1FF4}\\u{1FF6}-\\u{1FFC}\\u{2071}\\u{207F}\\u{2090}-\\u{209C}\\u{2102}\\u{2107}\\u{210A}-\\u{2113}\\u{2115}\\u{2118}\\u{2119}-\\u{211D}\\u{2124}\\u{2126}\\u{2128}\\u{212A}-\\u{212D}\\u{212E}\\u{212F}-\\u{2134}\\u{2135}-\\u{2138}\\u{2139}\\u{213C}-\\u{213F}\\u{2145}-\\u{2149}\\u{214E}\\u{2160}-\\u{2182}\\u{2183}-\\u{2184}\\u{2185}-\\u{2188}\\u{2C00}-\\u{2C2E}\\u{2C30}-\\u{2C5E}\\u{2C60}-\\u{2C7B}\\u{2C7C}-\\u{2C7D}\\u{2C7E}-\\u{2CE4}\\u{2CEB}-\\u{2CEE}\\u{2CF2}-\\u{2CF3}\\u{2D00}-\\u{2D25}\\u{2D27}\\u{2D2D}\\u{2D30}-\\u{2D67}\\u{2D6F}\\u{2D80}-\\u{2D96}\\u{2DA0}-\\u{2DA6}\\u{2DA8}-\\u{2DAE}\\u{2DB0}-\\u{2DB6}\\u{2DB8}-\\u{2DBE}\\u{2DC0}-\\u{2DC6}\\u{2DC8}-\\u{2DCE}\\u{2DD0}-\\u{2DD6}\\u{2DD8}-\\u{2DDE}\\u{3005}\\u{3006}\\u{3007}\\u{3021}-\\u{3029}\\u{3031}-\\u{3035}\\u{3038}-\\u{303A}\\u{303B}\\u{303C}\\u{3041}-\\u{3096}\\u{309B}-\\u{309C}\\u{309D}-\\u{309E}\\u{309F}\\u{30A1}-\\u{30FA}\\u{30FC}-\\u{30FE}\\u{30FF}\\u{3105}-\\u{312D}\\u{3131}-\\u{318E}\\u{31A0}-\\u{31BA}\\u{31F0}-\\u{31FF}\\u{3400}-\\u{4DB5}\\u{4E00}-\\u{9FD5}\\u{A000}-\\u{A014}\\u{A015}\\u{A016}-\\u{A48C}\\u{A4D0}-\\u{A4F7}\\u{A4F8}-\\u{A4FD}\\u{A500}-\\u{A60B}\\u{A60C}\\u{A610}-\\u{A61F}\\u{A62A}-\\u{A62B}\\u{A640}-\\u{A66D}\\u{A66E}\\u{A67F}\\u{A680}-\\u{A69B}\\u{A69C}-\\u{A69D}\\u{A6A0}-\\u{A6E5}\\u{A6E6}-\\u{A6EF}\\u{A717}-\\u{A71F}\\u{A722}-\\u{A76F}\\u{A770}\\u{A771}-\\u{A787}\\u{A788}\\u{A78B}-\\u{A78E}\\u{A78F}\\u{A790}-\\u{A7AE}\\u{A7B0}-\\u{A7B7}\\u{A7F7}\\u{A7F8}-\\u{A7F9}\\u{A7FA}\\u{A7FB}-\\u{A801}\\u{A803}-\\u{A805}\\u{A807}-\\u{A80A}\\u{A80C}-\\u{A822}\\u{A840}-\\u{A873}\\u{A882}-\\u{A8B3}\\u{A8F2}-\\u{A8F7}\\u{A8FB}\\u{A8FD}\\u{A90A}-\\u{A925}\\u{A930}-\\u{A946}\\u{A960}-\\u{A97C}\\u{A984}-\\u{A9B2}\\u{A9CF}\\u{A9E0}-\\u{A9E4}\\u{A9E6}\\u{A9E7}-\\u{A9EF}\\u{A9FA}-\\u{A9FE}\\u{AA00}-\\u{AA28}\\u{AA40}-\\u{AA42}\\u{AA44}-\\u{AA4B}\\u{AA60}-\\u{AA6F}\\u{AA70}\\u{AA71}-\\u{AA76}\\u{AA7A}\\u{AA7E}-\\u{AAAF}\\u{AAB1}\\u{AAB5}-\\u{AAB6}\\u{AAB9}-\\u{AABD}\\u{AAC0}\\u{AAC2}\\u{AADB}-\\u{AADC}\\u{AADD}\\u{AAE0}-\\u{AAEA}\\u{AAF2}\\u{AAF3}-\\u{AAF4}\\u{AB01}-\\u{AB06}\\u{AB09}-\\u{AB0E}\\u{AB11}-\\u{AB16}\\u{AB20}-\\u{AB26}\\u{AB28}-\\u{AB2E}\\u{AB30}-\\u{AB5A}\\u{AB5C}-\\u{AB5F}\\u{AB60}-\\u{AB65}\\u{AB70}-\\u{ABBF}\\u{ABC0}-\\u{ABE2}\\u{AC00}-\\u{D7A3}\\u{D7B0}-\\u{D7C6}\\u{D7CB}-\\u{D7FB}\\u{F900}-\\u{FA6D}\\u{FA70}-\\u{FAD9}\\u{FB00}-\\u{FB06}\\u{FB13}-\\u{FB17}\\u{FB1D}\\u{FB1F}-\\u{FB28}\\u{FB2A}-\\u{FB36}\\u{FB38}-\\u{FB3C}\\u{FB3E}\\u{FB40}-\\u{FB41}\\u{FB43}-\\u{FB44}\\u{FB46}-\\u{FBB1}\\u{FBD3}-\\u{FD3D}\\u{FD50}-\\u{FD8F}\\u{FD92}-\\u{FDC7}\\u{FDF0}-\\u{FDFB}\\u{FE70}-\\u{FE74}\\u{FE76}-\\u{FEFC}\\u{FF21}-\\u{FF3A}\\u{FF41}-\\u{FF5A}\\u{FF66}-\\u{FF6F}\\u{FF70}\\u{FF71}-\\u{FF9D}\\u{FF9E}-\\u{FF9F}\\u{FFA0}-\\u{FFBE}\\u{FFC2}-\\u{FFC7}\\u{FFCA}-\\u{FFCF}\\u{FFD2}-\\u{FFD7}\\u{FFDA}-\\u{FFDC}\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10140}-\\u{10174}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{10330}-\\u{10340}\\u{10341}\\u{10342}-\\u{10349}\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{103D1}-\\u{103D5}\\u{10400}-\\u{1044F}\\u{10450}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{11003}-\\u{11037}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{11700}-\\u{11719}\\u{118A0}-\\u{118DF}\\u{118FF}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B001}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2F800}-\\u{2FA1D}]+?[$\_\\x41-\\x5A\\x61-\\x7A\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u{01BA}\\u{01BB}\\u{01BC}-\\u{01BF}\\u{01C0}-\\u{01C3}\\u{01C4}-\\u{0293}\\u{0294}\\u{0295}-\\u{02AF}\\u{02B0}-\\u{02C1}\\u{02C6}-\\u{02D1}\\u{02E0}-\\u{02E4}\\u{02EC}\\u{02EE}\\u{0370}-\\u{0373}\\u{0374}\\u{0376}-\\u{0377}\\u{037A}\\u{037B}-\\u{037D}\\u{037F}\\u{0386}\\u{0388}-\\u{038A}\\u{038C}\\u{038E}-\\u{03A1}\\u{03A3}-\\u{03F5}\\u{03F7}-\\u{0481}\\u{048A}-\\u{052F}\\u{0531}-\\u{0556}\\u{0559}\\u{0561}-\\u{0587}\\u{05D0}-\\u{05EA}\\u{05F0}-\\u{05F2}\\u{0620}-\\u{063F}\\u{0640}\\u{0641}-\\u{064A}\\u{066E}-\\u{066F}\\u{0671}-\\u{06D3}\\u{06D5}\\u{06E5}-\\u{06E6}\\u{06EE}-\\u{06EF}\\u{06FA}-\\u{06FC}\\u{06FF}\\u{0710}\\u{0712}-\\u{072F}\\u{074D}-\\u{07A5}\\u{07B1}\\u{07CA}-\\u{07EA}\\u{07F4}-\\u{07F5}\\u{07FA}\\u{0800}-\\u{0815}\\u{081A}\\u{0824}\\u{0828}\\u{0840}-\\u{0858}\\u{08A0}-\\u{08B4}\\u{08B6}-\\u{08BD}\\u{0904}-\\u{0939}\\u{093D}\\u{0950}\\u{0958}-\\u{0961}\\u{0971}\\u{0972}-\\u{0980}\\u{0985}-\\u{098C}\\u{098F}-\\u{0990}\\u{0993}-\\u{09A8}\\u{09AA}-\\u{09B0}\\u{09B2}\\u{09B6}-\\u{09B9}\\u{09BD}\\u{09CE}\\u{09DC}-\\u{09DD}\\u{09DF}-\\u{09E1}\\u{09F0}-\\u{09F1}\\u{0A05}-\\u{0A0A}\\u{0A0F}-\\u{0A10}\\u{0A13}-\\u{0A28}\\u{0A2A}-\\u{0A30}\\u{0A32}-\\u{0A33}\\u{0A35}-\\u{0A36}\\u{0A38}-\\u{0A39}\\u{0A59}-\\u{0A5C}\\u{0A5E}\\u{0A72}-\\u{0A74}\\u{0A85}-\\u{0A8D}\\u{0A8F}-\\u{0A91}\\u{0A93}-\\u{0AA8}\\u{0AAA}-\\u{0AB0}\\u{0AB2}-\\u{0AB3}\\u{0AB5}-\\u{0AB9}\\u{0ABD}\\u{0AD0}\\u{0AE0}-\\u{0AE1}\\u{0AF9}\\u{0B05}-\\u{0B0C}\\u{0B0F}-\\u{0B10}\\u{0B13}-\\u{0B28}\\u{0B2A}-\\u{0B30}\\u{0B32}-\\u{0B33}\\u{0B35}-\\u{0B39}\\u{0B3D}\\u{0B5C}-\\u{0B5D}\\u{0B5F}-\\u{0B61}\\u{0B71}\\u{0B83}\\u{0B85}-\\u{0B8A}\\u{0B8E}-\\u{0B90}\\u{0B92}-\\u{0B95}\\u{0B99}-\\u{0B9A}\\u{0B9C}\\u{0B9E}-\\u{0B9F}\\u{0BA3}-\\u{0BA4}\\u{0BA8}-\\u{0BAA}\\u{0BAE}-\\u{0BB9}\\u{0BD0}\\u{0C05}-\\u{0C0C}\\u{0C0E}-\\u{0C10}\\u{0C12}-\\u{0C28}\\u{0C2A}-\\u{0C39}\\u{0C3D}\\u{0C58}-\\u{0C5A}\\u{0C60}-\\u{0C61}\\u{0C80}\\u{0C85}-\\u{0C8C}\\u{0C8E}-\\u{0C90}\\u{0C92}-\\u{0CA8}\\u{0CAA}-\\u{0CB3}\\u{0CB5}-\\u{0CB9}\\u{0CBD}\\u{0CDE}\\u{0CE0}-\\u{0CE1}\\u{0CF1}-\\u{0CF2}\\u{0D05}-\\u{0D0C}\\u{0D0E}-\\u{0D10}\\u{0D12}-\\u{0D3A}\\u{0D3D}\\u{0D4E}\\u{0D54}-\\u{0D56}\\u{0D5F}-\\u{0D61}\\u{0D7A}-\\u{0D7F}\\u{0D85}-\\u{0D96}\\u{0D9A}-\\u{0DB1}\\u{0DB3}-\\u{0DBB}\\u{0DBD}\\u{0DC0}-\\u{0DC6}\\u{0E01}-\\u{0E30}\\u{0E32}-\\u{0E33}\\u{0E40}-\\u{0E45}\\u{0E46}\\u{0E81}-\\u{0E82}\\u{0E84}\\u{0E87}-\\u{0E88}\\u{0E8A}\\u{0E8D}\\u{0E94}-\\u{0E97}\\u{0E99}-\\u{0E9F}\\u{0EA1}-\\u{0EA3}\\u{0EA5}\\u{0EA7}\\u{0EAA}-\\u{0EAB}\\u{0EAD}-\\u{0EB0}\\u{0EB2}-\\u{0EB3}\\u{0EBD}\\u{0EC0}-\\u{0EC4}\\u{0EC6}\\u{0EDC}-\\u{0EDF}\\u{0F00}\\u{0F40}-\\u{0F47}\\u{0F49}-\\u{0F6C}\\u{0F88}-\\u{0F8C}\\u{1000}-\\u{102A}\\u{103F}\\u{1050}-\\u{1055}\\u{105A}-\\u{105D}\\u{1061}\\u{1065}-\\u{1066}\\u{106E}-\\u{1070}\\u{1075}-\\u{1081}\\u{108E}\\u{10A0}-\\u{10C5}\\u{10C7}\\u{10CD}\\u{10D0}-\\u{10FA}\\u{10FC}\\u{10FD}-\\u{1248}\\u{124A}-\\u{124D}\\u{1250}-\\u{1256}\\u{1258}\\u{125A}-\\u{125D}\\u{1260}-\\u{1288}\\u{128A}-\\u{128D}\\u{1290}-\\u{12B0}\\u{12B2}-\\u{12B5}\\u{12B8}-\\u{12BE}\\u{12C0}\\u{12C2}-\\u{12C5}\\u{12C8}-\\u{12D6}\\u{12D8}-\\u{1310}\\u{1312}-\\u{1315}\\u{1318}-\\u{135A}\\u{1380}-\\u{138F}\\u{13A0}-\\u{13F5}\\u{13F8}-\\u{13FD}\\u{1401}-\\u{166C}\\u{166F}-\\u{167F}\\u{1681}-\\u{169A}\\u{16A0}-\\u{16EA}\\u{16EE}-\\u{16F0}\\u{16F1}-\\u{16F8}\\u{1700}-\\u{170C}\\u{170E}-\\u{1711}\\u{1720}-\\u{1731}\\u{1740}-\\u{1751}\\u{1760}-\\u{176C}\\u{176E}-\\u{1770}\\u{1780}-\\u{17B3}\\u{17D7}\\u{17DC}\\u{1820}-\\u{1842}\\u{1843}\\u{1844}-\\u{1877}\\u{1880}-\\u{1884}\\u{1885}-\\u{1886}\\u{1887}-\\u{18A8}\\u{18AA}\\u{18B0}-\\u{18F5}\\u{1900}-\\u{191E}\\u{1950}-\\u{196D}\\u{1970}-\\u{1974}\\u{1980}-\\u{19AB}\\u{19B0}-\\u{19C9}\\u{1A00}-\\u{1A16}\\u{1A20}-\\u{1A54}\\u{1AA7}\\u{1B05}-\\u{1B33}\\u{1B45}-\\u{1B4B}\\u{1B83}-\\u{1BA0}\\u{1BAE}-\\u{1BAF}\\u{1BBA}-\\u{1BE5}\\u{1C00}-\\u{1C23}\\u{1C4D}-\\u{1C4F}\\u{1C5A}-\\u{1C77}\\u{1C78}-\\u{1C7D}\\u{1C80}-\\u{1C88}\\u{1CE9}-\\u{1CEC}\\u{1CEE}-\\u{1CF1}\\u{1CF5}-\\u{1CF6}\\u{1D00}-\\u{1D2B}\\u{1D2C}-\\u{1D6A}\\u{1D6B}-\\u{1D77}\\u{1D78}\\u{1D79}-\\u{1D9A}\\u{1D9B}-\\u{1DBF}\\u{1E00}-\\u{1F15}\\u{1F18}-\\u{1F1D}\\u{1F20}-\\u{1F45}\\u{1F48}-\\u{1F4D}\\u{1F50}-\\u{1F57}\\u{1F59}\\u{1F5B}\\u{1F5D}\\u{1F5F}-\\u{1F7D}\\u{1F80}-\\u{1FB4}\\u{1FB6}-\\u{1FBC}\\u{1FBE}\\u{1FC2}-\\u{1FC4}\\u{1FC6}-\\u{1FCC}\\u{1FD0}-\\u{1FD3}\\u{1FD6}-\\u{1FDB}\\u{1FE0}-\\u{1FEC}\\u{1FF2}-\\u{1FF4}\\u{1FF6}-\\u{1FFC}\\u{2071}\\u{207F}\\u{2090}-\\u{209C}\\u{2102}\\u{2107}\\u{210A}-\\u{2113}\\u{2115}\\u{2118}\\u{2119}-\\u{211D}\\u{2124}\\u{2126}\\u{2128}\\u{212A}-\\u{212D}\\u{212E}\\u{212F}-\\u{2134}\\u{2135}-\\u{2138}\\u{2139}\\u{213C}-\\u{213F}\\u{2145}-\\u{2149}\\u{214E}\\u{2160}-\\u{2182}\\u{2183}-\\u{2184}\\u{2185}-\\u{2188}\\u{2C00}-\\u{2C2E}\\u{2C30}-\\u{2C5E}\\u{2C60}-\\u{2C7B}\\u{2C7C}-\\u{2C7D}\\u{2C7E}-\\u{2CE4}\\u{2CEB}-\\u{2CEE}\\u{2CF2}-\\u{2CF3}\\u{2D00}-\\u{2D25}\\u{2D27}\\u{2D2D}\\u{2D30}-\\u{2D67}\\u{2D6F}\\u{2D80}-\\u{2D96}\\u{2DA0}-\\u{2DA6}\\u{2DA8}-\\u{2DAE}\\u{2DB0}-\\u{2DB6}\\u{2DB8}-\\u{2DBE}\\u{2DC0}-\\u{2DC6}\\u{2DC8}-\\u{2DCE}\\u{2DD0}-\\u{2DD6}\\u{2DD8}-\\u{2DDE}\\u{3005}\\u{3006}\\u{3007}\\u{3021}-\\u{3029}\\u{3031}-\\u{3035}\\u{3038}-\\u{303A}\\u{303B}\\u{303C}\\u{3041}-\\u{3096}\\u{309B}-\\u{309C}\\u{309D}-\\u{309E}\\u{309F}\\u{30A1}-\\u{30FA}\\u{30FC}-\\u{30FE}\\u{30FF}\\u{3105}-\\u{312D}\\u{3131}-\\u{318E}\\u{31A0}-\\u{31BA}\\u{31F0}-\\u{31FF}\\u{3400}-\\u{4DB5}\\u{4E00}-\\u{9FD5}\\u{A000}-\\u{A014}\\u{A015}\\u{A016}-\\u{A48C}\\u{A4D0}-\\u{A4F7}\\u{A4F8}-\\u{A4FD}\\u{A500}-\\u{A60B}\\u{A60C}\\u{A610}-\\u{A61F}\\u{A62A}-\\u{A62B}\\u{A640}-\\u{A66D}\\u{A66E}\\u{A67F}\\u{A680}-\\u{A69B}\\u{A69C}-\\u{A69D}\\u{A6A0}-\\u{A6E5}\\u{A6E6}-\\u{A6EF}\\u{A717}-\\u{A71F}\\u{A722}-\\u{A76F}\\u{A770}\\u{A771}-\\u{A787}\\u{A788}\\u{A78B}-\\u{A78E}\\u{A78F}\\u{A790}-\\u{A7AE}\\u{A7B0}-\\u{A7B7}\\u{A7F7}\\u{A7F8}-\\u{A7F9}\\u{A7FA}\\u{A7FB}-\\u{A801}\\u{A803}-\\u{A805}\\u{A807}-\\u{A80A}\\u{A80C}-\\u{A822}\\u{A840}-\\u{A873}\\u{A882}-\\u{A8B3}\\u{A8F2}-\\u{A8F7}\\u{A8FB}\\u{A8FD}\\u{A90A}-\\u{A925}\\u{A930}-\\u{A946}\\u{A960}-\\u{A97C}\\u{A984}-\\u{A9B2}\\u{A9CF}\\u{A9E0}-\\u{A9E4}\\u{A9E6}\\u{A9E7}-\\u{A9EF}\\u{A9FA}-\\u{A9FE}\\u{AA00}-\\u{AA28}\\u{AA40}-\\u{AA42}\\u{AA44}-\\u{AA4B}\\u{AA60}-\\u{AA6F}\\u{AA70}\\u{AA71}-\\u{AA76}\\u{AA7A}\\u{AA7E}-\\u{AAAF}\\u{AAB1}\\u{AAB5}-\\u{AAB6}\\u{AAB9}-\\u{AABD}\\u{AAC0}\\u{AAC2}\\u{AADB}-\\u{AADC}\\u{AADD}\\u{AAE0}-\\u{AAEA}\\u{AAF2}\\u{AAF3}-\\u{AAF4}\\u{AB01}-\\u{AB06}\\u{AB09}-\\u{AB0E}\\u{AB11}-\\u{AB16}\\u{AB20}-\\u{AB26}\\u{AB28}-\\u{AB2E}\\u{AB30}-\\u{AB5A}\\u{AB5C}-\\u{AB5F}\\u{AB60}-\\u{AB65}\\u{AB70}-\\u{ABBF}\\u{ABC0}-\\u{ABE2}\\u{AC00}-\\u{D7A3}\\u{D7B0}-\\u{D7C6}\\u{D7CB}-\\u{D7FB}\\u{F900}-\\u{FA6D}\\u{FA70}-\\u{FAD9}\\u{FB00}-\\u{FB06}\\u{FB13}-\\u{FB17}\\u{FB1D}\\u{FB1F}-\\u{FB28}\\u{FB2A}-\\u{FB36}\\u{FB38}-\\u{FB3C}\\u{FB3E}\\u{FB40}-\\u{FB41}\\u{FB43}-\\u{FB44}\\u{FB46}-\\u{FBB1}\\u{FBD3}-\\u{FD3D}\\u{FD50}-\\u{FD8F}\\u{FD92}-\\u{FDC7}\\u{FDF0}-\\u{FDFB}\\u{FE70}-\\u{FE74}\\u{FE76}-\\u{FEFC}\\u{FF21}-\\u{FF3A}\\u{FF41}-\\u{FF5A}\\u{FF66}-\\u{FF6F}\\u{FF70}\\u{FF71}-\\u{FF9D}\\u{FF9E}-\\u{FF9F}\\u{FFA0}-\\u{FFBE}\\u{FFC2}-\\u{FFC7}\\u{FFCA}-\\u{FFCF}\\u{FFD2}-\\u{FFD7}\\u{FFDA}-\\u{FFDC}\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10140}-\\u{10174}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{10300}-\\u{1031F}\\u{10330}-\\u{10340}\\u{10341}\\u{10342}-\\u{10349}\\u{1034A}\\u{10350}-\\u{10375}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{103D1}-\\u{103D5}\\u{10400}-\\u{1044F}\\u{10450}-\\u{1049D}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{11003}-\\u{11037}\\u{11083}-\\u{110AF}\\u{110D0}-\\u{110E8}\\u{11103}-\\u{11126}\\u{11150}-\\u{11172}\\u{11176}\\u{11183}-\\u{111B2}\\u{111C1}-\\u{111C4}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133D}\\u{11350}\\u{1135D}-\\u{11361}\\u{11400}-\\u{11434}\\u{11447}-\\u{1144A}\\u{11480}-\\u{114AF}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{11580}-\\u{115AE}\\u{115D8}-\\u{115DB}\\u{11600}-\\u{1162F}\\u{11644}\\u{11680}-\\u{116AA}\\u{11700}-\\u{11719}\\u{118A0}-\\u{118DF}\\u{118FF}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C40}\\u{11C72}-\\u{11C8F}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16AD0}-\\u{16AED}\\u{16B00}-\\u{16B2F}\\u{16B40}-\\u{16B43}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B001}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\u{1D78A}-\\u{1D7A8}\\u{1D7AA}-\\u{1D7C2}\\u{1D7C4}-\\u{1D7CB}\\u{1E800}-\\u{1E8C4}\\u{1E900}-\\u{1E943}\\u{1EE00}-\\u{1EE03}\\u{1EE05}-\\u{1EE1F}\\u{1EE21}-\\u{1EE22}\\u{1EE24}\\u{1EE27}\\u{1EE29}-\\u{1EE32}\\u{1EE34}-\\u{1EE37}\\u{1EE39}\\u{1EE3B}\\u{1EE42}\\u{1EE47}\\u{1EE49}\\u{1EE4B}\\u{1EE4D}-\\u{1EE4F}\\u{1EE51}-\\u{1EE52}\\u{1EE54}\\u{1EE57}\\u{1EE59}\\u{1EE5B}\\u{1EE5D}\\u{1EE5F}\\u{1EE61}-\\u{1EE62}\\u{1EE64}\\u{1EE67}-\\u{1EE6A}\\u{1EE6C}-\\u{1EE72}\\u{1EE74}-\\u{1EE77}\\u{1EE79}-\\u{1EE7C}\\u{1EE7E}\\u{1EE80}-\\u{1EE89}\\u{1EE8B}-\\u{1EE9B}\\u{1EEA1}-\\u{1EEA3}\\u{1EEA5}-\\u{1EEA9}\\u{1EEAB}-\\u{1EEBB}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2F800}-\\u{2FA1D}\\x30-\\x39\\x41-\\x5A\\x5F\\x61-\\x7A\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u{01BA}\\u{01BB}\\u{01BC}-\\u{01BF}\\u{01C0}-\\u{01C3}\\u{01C4}-\\u{0293}\\u{0294}\\u{0295}-\\u{02AF}\\u{02B0}-\\u{02C1}\\u{02C6}-\\u{02D1}\\u{02E0}-\\u{02E4}\\u{02EC}\\u{02EE}\\u{0300}-\\u{036F}\\u{0370}-\\u{0373}\\u{0374}\\u{0376}-\\u{0377}\\u{037A}\\u{037B}-\\u{037D}\\u{037F}\\u{0386}\\u{0387}\\u{0388}-\\u{038A}\\u{038C}\\u{038E}-\\u{03A1}\\u{03A3}-\\u{03F5}\\u{03F7}-\\u{0481}\\u{0483}-\\u{0487}\\u{048A}-\\u{052F}\\u{0531}-\\u{0556}\\u{0559}\\u{0561}-\\u{0587}\\u{0591}-\\u{05BD}\\u{05BF}\\u{05C1}-\\u{05C2}\\u{05C4}-\\u{05C5}\\u{05C7}\\u{05D0}-\\u{05EA}\\u{05F0}-\\u{05F2}\\u{0610}-\\u{061A}\\u{0620}-\\u{063F}\\u{0640}\\u{0641}-\\u{064A}\\u{064B}-\\u{065F}\\u{0660}-\\u{0669}\\u{066E}-\\u{066F}\\u{0670}\\u{0671}-\\u{06D3}\\u{06D5}\\u{06D6}-\\u{06DC}\\u{06DF}-\\u{06E4}\\u{06E5}-\\u{06E6}\\u{06E7}-\\u{06E8}\\u{06EA}-\\u{06ED}\\u{06EE}-\\u{06EF}\\u{06F0}-\\u{06F9}\\u{06FA}-\\u{06FC}\\u{06FF}\\u{0710}\\u{0711}\\u{0712}-\\u{072F}\\u{0730}-\\u{074A}\\u{074D}-\\u{07A5}\\u{07A6}-\\u{07B0}\\u{07B1}\\u{07C0}-\\u{07C9}\\u{07CA}-\\u{07EA}\\u{07EB}-\\u{07F3}\\u{07F4}-\\u{07F5}\\u{07FA}\\u{0800}-\\u{0815}\\u{0816}-\\u{0819}\\u{081A}\\u{081B}-\\u{0823}\\u{0824}\\u{0825}-\\u{0827}\\u{0828}\\u{0829}-\\u{082D}\\u{0840}-\\u{0858}\\u{0859}-\\u{085B}\\u{08A0}-\\u{08B4}\\u{08B6}-\\u{08BD}\\u{08D4}-\\u{08E1}\\u{08E3}-\\u{0902}\\u{0903}\\u{0904}-\\u{0939}\\u{093A}\\u{093B}\\u{093C}\\u{093D}\\u{093E}-\\u{0940}\\u{0941}-\\u{0948}\\u{0949}-\\u{094C}\\u{094D}\\u{094E}-\\u{094F}\\u{0950}\\u{0951}-\\u{0957}\\u{0958}-\\u{0961}\\u{0962}-\\u{0963}\\u{0966}-\\u{096F}\\u{0971}\\u{0972}-\\u{0980}\\u{0981}\\u{0982}-\\u{0983}\\u{0985}-\\u{098C}\\u{098F}-\\u{0990}\\u{0993}-\\u{09A8}\\u{09AA}-\\u{09B0}\\u{09B2}\\u{09B6}-\\u{09B9}\\u{09BC}\\u{09BD}\\u{09BE}-\\u{09C0}\\u{09C1}-\\u{09C4}\\u{09C7}-\\u{09C8}\\u{09CB}-\\u{09CC}\\u{09CD}\\u{09CE}\\u{09D7}\\u{09DC}-\\u{09DD}\\u{09DF}-\\u{09E1}\\u{09E2}-\\u{09E3}\\u{09E6}-\\u{09EF}\\u{09F0}-\\u{09F1}\\u{0A01}-\\u{0A02}\\u{0A03}\\u{0A05}-\\u{0A0A}\\u{0A0F}-\\u{0A10}\\u{0A13}-\\u{0A28}\\u{0A2A}-\\u{0A30}\\u{0A32}-\\u{0A33}\\u{0A35}-\\u{0A36}\\u{0A38}-\\u{0A39}\\u{0A3C}\\u{0A3E}-\\u{0A40}\\u{0A41}-\\u{0A42}\\u{0A47}-\\u{0A48}\\u{0A4B}-\\u{0A4D}\\u{0A51}\\u{0A59}-\\u{0A5C}\\u{0A5E}\\u{0A66}-\\u{0A6F}\\u{0A70}-\\u{0A71}\\u{0A72}-\\u{0A74}\\u{0A75}\\u{0A81}-\\u{0A82}\\u{0A83}\\u{0A85}-\\u{0A8D}\\u{0A8F}-\\u{0A91}\\u{0A93}-\\u{0AA8}\\u{0AAA}-\\u{0AB0}\\u{0AB2}-\\u{0AB3}\\u{0AB5}-\\u{0AB9}\\u{0ABC}\\u{0ABD}\\u{0ABE}-\\u{0AC0}\\u{0AC1}-\\u{0AC5}\\u{0AC7}-\\u{0AC8}\\u{0AC9}\\u{0ACB}-\\u{0ACC}\\u{0ACD}\\u{0AD0}\\u{0AE0}-\\u{0AE1}\\u{0AE2}-\\u{0AE3}\\u{0AE6}-\\u{0AEF}\\u{0AF9}\\u{0B01}\\u{0B02}-\\u{0B03}\\u{0B05}-\\u{0B0C}\\u{0B0F}-\\u{0B10}\\u{0B13}-\\u{0B28}\\u{0B2A}-\\u{0B30}\\u{0B32}-\\u{0B33}\\u{0B35}-\\u{0B39}\\u{0B3C}\\u{0B3D}\\u{0B3E}\\u{0B3F}\\u{0B40}\\u{0B41}-\\u{0B44}\\u{0B47}-\\u{0B48}\\u{0B4B}-\\u{0B4C}\\u{0B4D}\\u{0B56}\\u{0B57}\\u{0B5C}-\\u{0B5D}\\u{0B5F}-\\u{0B61}\\u{0B62}-\\u{0B63}\\u{0B66}-\\u{0B6F}\\u{0B71}\\u{0B82}\\u{0B83}\\u{0B85}-\\u{0B8A}\\u{0B8E}-\\u{0B90}\\u{0B92}-\\u{0B95}\\u{0B99}-\\u{0B9A}\\u{0B9C}\\u{0B9E}-\\u{0B9F}\\u{0BA3}-\\u{0BA4}\\u{0BA8}-\\u{0BAA}\\u{0BAE}-\\u{0BB9}\\u{0BBE}-\\u{0BBF}\\u{0BC0}\\u{0BC1}-\\u{0BC2}\\u{0BC6}-\\u{0BC8}\\u{0BCA}-\\u{0BCC}\\u{0BCD}\\u{0BD0}\\u{0BD7}\\u{0BE6}-\\u{0BEF}\\u{0C00}\\u{0C01}-\\u{0C03}\\u{0C05}-\\u{0C0C}\\u{0C0E}-\\u{0C10}\\u{0C12}-\\u{0C28}\\u{0C2A}-\\u{0C39}\\u{0C3D}\\u{0C3E}-\\u{0C40}\\u{0C41}-\\u{0C44}\\u{0C46}-\\u{0C48}\\u{0C4A}-\\u{0C4D}\\u{0C55}-\\u{0C56}\\u{0C58}-\\u{0C5A}\\u{0C60}-\\u{0C61}\\u{0C62}-\\u{0C63}\\u{0C66}-\\u{0C6F}\\u{0C80}\\u{0C81}\\u{0C82}-\\u{0C83}\\u{0C85}-\\u{0C8C}\\u{0C8E}-\\u{0C90}\\u{0C92}-\\u{0CA8}\\u{0CAA}-\\u{0CB3}\\u{0CB5}-\\u{0CB9}\\u{0CBC}\\u{0CBD}\\u{0CBE}\\u{0CBF}\\u{0CC0}-\\u{0CC4}\\u{0CC6}\\u{0CC7}-\\u{0CC8}\\u{0CCA}-\\u{0CCB}\\u{0CCC}-\\u{0CCD}\\u{0CD5}-\\u{0CD6}\\u{0CDE}\\u{0CE0}-\\u{0CE1}\\u{0CE2}-\\u{0CE3}\\u{0CE6}-\\u{0CEF}\\u{0CF1}-\\u{0CF2}\\u{0D01}\\u{0D02}-\\u{0D03}\\u{0D05}-\\u{0D0C}\\u{0D0E}-\\u{0D10}\\u{0D12}-\\u{0D3A}\\u{0D3D}\\u{0D3E}-\\u{0D40}\\u{0D41}-\\u{0D44}\\u{0D46}-\\u{0D48}\\u{0D4A}-\\u{0D4C}\\u{0D4D}\\u{0D4E}\\u{0D54}-\\u{0D56}\\u{0D57}\\u{0D5F}-\\u{0D61}\\u{0D62}-\\u{0D63}\\u{0D66}-\\u{0D6F}\\u{0D7A}-\\u{0D7F}\\u{0D82}-\\u{0D83}\\u{0D85}-\\u{0D96}\\u{0D9A}-\\u{0DB1}\\u{0DB3}-\\u{0DBB}\\u{0DBD}\\u{0DC0}-\\u{0DC6}\\u{0DCA}\\u{0DCF}-\\u{0DD1}\\u{0DD2}-\\u{0DD4}\\u{0DD6}\\u{0DD8}-\\u{0DDF}\\u{0DE6}-\\u{0DEF}\\u{0DF2}-\\u{0DF3}\\u{0E01}-\\u{0E30}\\u{0E31}\\u{0E32}-\\u{0E33}\\u{0E34}-\\u{0E3A}\\u{0E40}-\\u{0E45}\\u{0E46}\\u{0E47}-\\u{0E4E}\\u{0E50}-\\u{0E59}\\u{0E81}-\\u{0E82}\\u{0E84}\\u{0E87}-\\u{0E88}\\u{0E8A}\\u{0E8D}\\u{0E94}-\\u{0E97}\\u{0E99}-\\u{0E9F}\\u{0EA1}-\\u{0EA3}\\u{0EA5}\\u{0EA7}\\u{0EAA}-\\u{0EAB}\\u{0EAD}-\\u{0EB0}\\u{0EB1}\\u{0EB2}-\\u{0EB3}\\u{0EB4}-\\u{0EB9}\\u{0EBB}-\\u{0EBC}\\u{0EBD}\\u{0EC0}-\\u{0EC4}\\u{0EC6}\\u{0EC8}-\\u{0ECD}\\u{0ED0}-\\u{0ED9}\\u{0EDC}-\\u{0EDF}\\u{0F00}\\u{0F18}-\\u{0F19}\\u{0F20}-\\u{0F29}\\u{0F35}\\u{0F37}\\u{0F39}\\u{0F3E}-\\u{0F3F}\\u{0F40}-\\u{0F47}\\u{0F49}-\\u{0F6C}\\u{0F71}-\\u{0F7E}\\u{0F7F}\\u{0F80}-\\u{0F84}\\u{0F86}-\\u{0F87}\\u{0F88}-\\u{0F8C}\\u{0F8D}-\\u{0F97}\\u{0F99}-\\u{0FBC}\\u{0FC6}\\u{1000}-\\u{102A}\\u{102B}-\\u{102C}\\u{102D}-\\u{1030}\\u{1031}\\u{1032}-\\u{1037}\\u{1038}\\u{1039}-\\u{103A}\\u{103B}-\\u{103C}\\u{103D}-\\u{103E}\\u{103F}\\u{1040}-\\u{1049}\\u{1050}-\\u{1055}\\u{1056}-\\u{1057}\\u{1058}-\\u{1059}\\u{105A}-\\u{105D}\\u{105E}-\\u{1060}\\u{1061}\\u{1062}-\\u{1064}\\u{1065}-\\u{1066}\\u{1067}-\\u{106D}\\u{106E}-\\u{1070}\\u{1071}-\\u{1074}\\u{1075}-\\u{1081}\\u{1082}\\u{1083}-\\u{1084}\\u{1085}-\\u{1086}\\u{1087}-\\u{108C}\\u{108D}\\u{108E}\\u{108F}\\u{1090}-\\u{1099}\\u{109A}-\\u{109C}\\u{109D}\\u{10A0}-\\u{10C5}\\u{10C7}\\u{10CD}\\u{10D0}-\\u{10FA}\\u{10FC}\\u{10FD}-\\u{1248}\\u{124A}-\\u{124D}\\u{1250}-\\u{1256}\\u{1258}\\u{125A}-\\u{125D}\\u{1260}-\\u{1288}\\u{128A}-\\u{128D}\\u{1290}-\\u{12B0}\\u{12B2}-\\u{12B5}\\u{12B8}-\\u{12BE}\\u{12C0}\\u{12C2}-\\u{12C5}\\u{12C8}-\\u{12D6}\\u{12D8}-\\u{1310}\\u{1312}-\\u{1315}\\u{1318}-\\u{135A}\\u{135D}-\\u{135F}\\u{1369}-\\u{1371}\\u{1380}-\\u{138F}\\u{13A0}-\\u{13F5}\\u{13F8}-\\u{13FD}\\u{1401}-\\u{166C}\\u{166F}-\\u{167F}\\u{1681}-\\u{169A}\\u{16A0}-\\u{16EA}\\u{16EE}-\\u{16F0}\\u{16F1}-\\u{16F8}\\u{1700}-\\u{170C}\\u{170E}-\\u{1711}\\u{1712}-\\u{1714}\\u{1720}-\\u{1731}\\u{1732}-\\u{1734}\\u{1740}-\\u{1751}\\u{1752}-\\u{1753}\\u{1760}-\\u{176C}\\u{176E}-\\u{1770}\\u{1772}-\\u{1773}\\u{1780}-\\u{17B3}\\u{17B4}-\\u{17B5}\\u{17B6}\\u{17B7}-\\u{17BD}\\u{17BE}-\\u{17C5}\\u{17C6}\\u{17C7}-\\u{17C8}\\u{17C9}-\\u{17D3}\\u{17D7}\\u{17DC}\\u{17DD}\\u{17E0}-\\u{17E9}\\u{180B}-\\u{180D}\\u{1810}-\\u{1819}\\u{1820}-\\u{1842}\\u{1843}\\u{1844}-\\u{1877}\\u{1880}-\\u{1884}\\u{1885}-\\u{1886}\\u{1887}-\\u{18A8}\\u{18A9}\\u{18AA}\\u{18B0}-\\u{18F5}\\u{1900}-\\u{191E}\\u{1920}-\\u{1922}\\u{1923}-\\u{1926}\\u{1927}-\\u{1928}\\u{1929}-\\u{192B}\\u{1930}-\\u{1931}\\u{1932}\\u{1933}-\\u{1938}\\u{1939}-\\u{193B}\\u{1946}-\\u{194F}\\u{1950}-\\u{196D}\\u{1970}-\\u{1974}\\u{1980}-\\u{19AB}\\u{19B0}-\\u{19C9}\\u{19D0}-\\u{19D9}\\u{19DA}\\u{1A00}-\\u{1A16}\\u{1A17}-\\u{1A18}\\u{1A19}-\\u{1A1A}\\u{1A1B}\\u{1A20}-\\u{1A54}\\u{1A55}\\u{1A56}\\u{1A57}\\u{1A58}-\\u{1A5E}\\u{1A60}\\u{1A61}\\u{1A62}\\u{1A63}-\\u{1A64}\\u{1A65}-\\u{1A6C}\\u{1A6D}-\\u{1A72}\\u{1A73}-\\u{1A7C}\\u{1A7F}\\u{1A80}-\\u{1A89}\\u{1A90}-\\u{1A99}\\u{1AA7}\\u{1AB0}-\\u{1ABD}\\u{1B00}-\\u{1B03}\\u{1B04}\\u{1B05}-\\u{1B33}\\u{1B34}\\u{1B35}\\u{1B36}-\\u{1B3A}\\u{1B3B}\\u{1B3C}\\u{1B3D}-\\u{1B41}\\u{1B42}\\u{1B43}-\\u{1B44}\\u{1B45}-\\u{1B4B}\\u{1B50}-\\u{1B59}\\u{1B6B}-\\u{1B73}\\u{1B80}-\\u{1B81}\\u{1B82}\\u{1B83}-\\u{1BA0}\\u{1BA1}\\u{1BA2}-\\u{1BA5}\\u{1BA6}-\\u{1BA7}\\u{1BA8}-\\u{1BA9}\\u{1BAA}\\u{1BAB}-\\u{1BAD}\\u{1BAE}-\\u{1BAF}\\u{1BB0}-\\u{1BB9}\\u{1BBA}-\\u{1BE5}\\u{1BE6}\\u{1BE7}\\u{1BE8}-\\u{1BE9}\\u{1BEA}-\\u{1BEC}\\u{1BED}\\u{1BEE}\\u{1BEF}-\\u{1BF1}\\u{1BF2}-\\u{1BF3}\\u{1C00}-\\u{1C23}\\u{1C24}-\\u{1C2B}\\u{1C2C}-\\u{1C33}\\u{1C34}-\\u{1C35}\\u{1C36}-\\u{1C37}\\u{1C40}-\\u{1C49}\\u{1C4D}-\\u{1C4F}\\u{1C50}-\\u{1C59}\\u{1C5A}-\\u{1C77}\\u{1C78}-\\u{1C7D}\\u{1C80}-\\u{1C88}\\u{1CD0}-\\u{1CD2}\\u{1CD4}-\\u{1CE0}\\u{1CE1}\\u{1CE2}-\\u{1CE8}\\u{1CE9}-\\u{1CEC}\\u{1CED}\\u{1CEE}-\\u{1CF1}\\u{1CF2}-\\u{1CF3}\\u{1CF4}\\u{1CF5}-\\u{1CF6}\\u{1CF8}-\\u{1CF9}\\u{1D00}-\\u{1D2B}\\u{1D2C}-\\u{1D6A}\\u{1D6B}-\\u{1D77}\\u{1D78}\\u{1D79}-\\u{1D9A}\\u{1D9B}-\\u{1DBF}\\u{1DC0}-\\u{1DF5}\\u{1DFB}-\\u{1DFF}\\u{1E00}-\\u{1F15}\\u{1F18}-\\u{1F1D}\\u{1F20}-\\u{1F45}\\u{1F48}-\\u{1F4D}\\u{1F50}-\\u{1F57}\\u{1F59}\\u{1F5B}\\u{1F5D}\\u{1F5F}-\\u{1F7D}\\u{1F80}-\\u{1FB4}\\u{1FB6}-\\u{1FBC}\\u{1FBE}\\u{1FC2}-\\u{1FC4}\\u{1FC6}-\\u{1FCC}\\u{1FD0}-\\u{1FD3}\\u{1FD6}-\\u{1FDB}\\u{1FE0}-\\u{1FEC}\\u{1FF2}-\\u{1FF4}\\u{1FF6}-\\u{1FFC}\\u{203F}-\\u{2040}\\u{2054}\\u{2071}\\u{207F}\\u{2090}-\\u{209C}\\u{20D0}-\\u{20DC}\\u{20E1}\\u{20E5}-\\u{20F0}\\u{2102}\\u{2107}\\u{210A}-\\u{2113}\\u{2115}\\u{2118}\\u{2119}-\\u{211D}\\u{2124}\\u{2126}\\u{2128}\\u{212A}-\\u{212D}\\u{212E}\\u{212F}-\\u{2134}\\u{2135}-\\u{2138}\\u{2139}\\u{213C}-\\u{213F}\\u{2145}-\\u{2149}\\u{214E}\\u{2160}-\\u{2182}\\u{2183}-\\u{2184}\\u{2185}-\\u{2188}\\u{2C00}-\\u{2C2E}\\u{2C30}-\\u{2C5E}\\u{2C60}-\\u{2C7B}\\u{2C7C}-\\u{2C7D}\\u{2C7E}-\\u{2CE4}\\u{2CEB}-\\u{2CEE}\\u{2CEF}-\\u{2CF1}\\u{2CF2}-\\u{2CF3}\\u{2D00}-\\u{2D25}\\u{2D27}\\u{2D2D}\\u{2D30}-\\u{2D67}\\u{2D6F}\\u{2D7F}\\u{2D80}-\\u{2D96}\\u{2DA0}-\\u{2DA6}\\u{2DA8}-\\u{2DAE}\\u{2DB0}-\\u{2DB6}\\u{2DB8}-\\u{2DBE}\\u{2DC0}-\\u{2DC6}\\u{2DC8}-\\u{2DCE}\\u{2DD0}-\\u{2DD6}\\u{2DD8}-\\u{2DDE}\\u{2DE0}-\\u{2DFF}\\u{3005}\\u{3006}\\u{3007}\\u{3021}-\\u{3029}\\u{302A}-\\u{302D}\\u{302E}-\\u{302F}\\u{3031}-\\u{3035}\\u{3038}-\\u{303A}\\u{303B}\\u{303C}\\u{3041}-\\u{3096}\\u{3099}-\\u{309A}\\u{309B}-\\u{309C}\\u{309D}-\\u{309E}\\u{309F}\\u{30A1}-\\u{30FA}\\u{30FC}-\\u{30FE}\\u{30FF}\\u{3105}-\\u{312D}\\u{3131}-\\u{318E}\\u{31A0}-\\u{31BA}\\u{31F0}-\\u{31FF}\\u{3400}-\\u{4DB5}\\u{4E00}-\\u{9FD5}\\u{A000}-\\u{A014}\\u{A015}\\u{A016}-\\u{A48C}\\u{A4D0}-\\u{A4F7}\\u{A4F8}-\\u{A4FD}\\u{A500}-\\u{A60B}\\u{A60C}\\u{A610}-\\u{A61F}\\u{A620}-\\u{A629}\\u{A62A}-\\u{A62B}\\u{A640}-\\u{A66D}\\u{A66E}\\u{A66F}\\u{A674}-\\u{A67D}\\u{A67F}\\u{A680}-\\u{A69B}\\u{A69C}-\\u{A69D}\\u{A69E}-\\u{A69F}\\u{A6A0}-\\u{A6E5}\\u{A6E6}-\\u{A6EF}\\u{A6F0}-\\u{A6F1}\\u{A717}-\\u{A71F}\\u{A722}-\\u{A76F}\\u{A770}\\u{A771}-\\u{A787}\\u{A788}\\u{A78B}-\\u{A78E}\\u{A78F}\\u{A790}-\\u{A7AE}\\u{A7B0}-\\u{A7B7}\\u{A7F7}\\u{A7F8}-\\u{A7F9}\\u{A7FA}\\u{A7FB}-\\u{A801}\\u{A802}\\u{A803}-\\u{A805}\\u{A806}\\u{A807}-\\u{A80A}\\u{A80B}\\u{A80C}-\\u{A822}\\u{A823}-\\u{A824}\\u{A825}-\\u{A826}\\u{A827}\\u{A840}-\\u{A873}\\u{A880}-\\u{A881}\\u{A882}-\\u{A8B3}\\u{A8B4}-\\u{A8C3}\\u{A8C4}-\\u{A8C5}\\u{A8D0}-\\u{A8D9}\\u{A8E0}-\\u{A8F1}\\u{A8F2}-\\u{A8F7}\\u{A8FB}\\u{A8FD}\\u{A900}-\\u{A909}\\u{A90A}-\\u{A925}\\u{A926}-\\u{A92D}\\u{A930}-\\u{A946}\\u{A947}-\\u{A951}\\u{A952}-\\u{A953}\\u{A960}-\\u{A97C}\\u{A980}-\\u{A982}\\u{A983}\\u{A984}-\\u{A9B2}\\u{A9B3}\\u{A9B4}-\\u{A9B5}\\u{A9B6}-\\u{A9B9}\\u{A9BA}-\\u{A9BB}\\u{A9BC}\\u{A9BD}-\\u{A9C0}\\u{A9CF}\\u{A9D0}-\\u{A9D9}\\u{A9E0}-\\u{A9E4}\\u{A9E5}\\u{A9E6}\\u{A9E7}-\\u{A9EF}\\u{A9F0}-\\u{A9F9}\\u{A9FA}-\\u{A9FE}\\u{AA00}-\\u{AA28}\\u{AA29}-\\u{AA2E}\\u{AA2F}-\\u{AA30}\\u{AA31}-\\u{AA32}\\u{AA33}-\\u{AA34}\\u{AA35}-\\u{AA36}\\u{AA40}-\\u{AA42}\\u{AA43}\\u{AA44}-\\u{AA4B}\\u{AA4C}\\u{AA4D}\\u{AA50}-\\u{AA59}\\u{AA60}-\\u{AA6F}\\u{AA70}\\u{AA71}-\\u{AA76}\\u{AA7A}\\u{AA7B}\\u{AA7C}\\u{AA7D}\\u{AA7E}-\\u{AAAF}\\u{AAB0}\\u{AAB1}\\u{AAB2}-\\u{AAB4}\\u{AAB5}-\\u{AAB6}\\u{AAB7}-\\u{AAB8}\\u{AAB9}-\\u{AABD}\\u{AABE}-\\u{AABF}\\u{AAC0}\\u{AAC1}\\u{AAC2}\\u{AADB}-\\u{AADC}\\u{AADD}\\u{AAE0}-\\u{AAEA}\\u{AAEB}\\u{AAEC}-\\u{AAED}\\u{AAEE}-\\u{AAEF}\\u{AAF2}\\u{AAF3}-\\u{AAF4}\\u{AAF5}\\u{AAF6}\\u{AB01}-\\u{AB06}\\u{AB09}-\\u{AB0E}\\u{AB11}-\\u{AB16}\\u{AB20}-\\u{AB26}\\u{AB28}-\\u{AB2E}\\u{AB30}-\\u{AB5A}\\u{AB5C}-\\u{AB5F}\\u{AB60}-\\u{AB65}\\u{AB70}-\\u{ABBF}\\u{ABC0}-\\u{ABE2}\\u{ABE3}-\\u{ABE4}\\u{ABE5}\\u{ABE6}-\\u{ABE7}\\u{ABE8}\\u{ABE9}-\\u{ABEA}\\u{ABEC}\\u{ABED}\\u{ABF0}-\\u{ABF9}\\u{AC00}-\\u{D7A3}\\u{D7B0}-\\u{D7C6}\\u{D7CB}-\\u{D7FB}\\u{F900}-\\u{FA6D}\\u{FA70}-\\u{FAD9}\\u{FB00}-\\u{FB06}\\u{FB13}-\\u{FB17}\\u{FB1D}\\u{FB1E}\\u{FB1F}-\\u{FB28}\\u{FB2A}-\\u{FB36}\\u{FB38}-\\u{FB3C}\\u{FB3E}\\u{FB40}-\\u{FB41}\\u{FB43}-\\u{FB44}\\u{FB46}-\\u{FBB1}\\u{FBD3}-\\u{FD3D}\\u{FD50}-\\u{FD8F}\\u{FD92}-\\u{FDC7}\\u{FDF0}-\\u{FDFB}\\u{FE00}-\\u{FE0F}\\u{FE20}-\\u{FE2F}\\u{FE33}-\\u{FE34}\\u{FE4D}-\\u{FE4F}\\u{FE70}-\\u{FE74}\\u{FE76}-\\u{FEFC}\\u{FF10}-\\u{FF19}\\u{FF21}-\\u{FF3A}\\u{FF3F}\\u{FF41}-\\u{FF5A}\\u{FF66}-\\u{FF6F}\\u{FF70}\\u{FF71}-\\u{FF9D}\\u{FF9E}-\\u{FF9F}\\u{FFA0}-\\u{FFBE}\\u{FFC2}-\\u{FFC7}\\u{FFCA}-\\u{FFCF}\\u{FFD2}-\\u{FFD7}\\u{FFDA}-\\u{FFDC}\\u{10000}-\\u{1000B}\\u{1000D}-\\u{10026}\\u{10028}-\\u{1003A}\\u{1003C}-\\u{1003D}\\u{1003F}-\\u{1004D}\\u{10050}-\\u{1005D}\\u{10080}-\\u{100FA}\\u{10140}-\\u{10174}\\u{101FD}\\u{10280}-\\u{1029C}\\u{102A0}-\\u{102D0}\\u{102E0}\\u{10300}-\\u{1031F}\\u{10330}-\\u{10340}\\u{10341}\\u{10342}-\\u{10349}\\u{1034A}\\u{10350}-\\u{10375}\\u{10376}-\\u{1037A}\\u{10380}-\\u{1039D}\\u{103A0}-\\u{103C3}\\u{103C8}-\\u{103CF}\\u{103D1}-\\u{103D5}\\u{10400}-\\u{1044F}\\u{10450}-\\u{1049D}\\u{104A0}-\\u{104A9}\\u{104B0}-\\u{104D3}\\u{104D8}-\\u{104FB}\\u{10500}-\\u{10527}\\u{10530}-\\u{10563}\\u{10600}-\\u{10736}\\u{10740}-\\u{10755}\\u{10760}-\\u{10767}\\u{10800}-\\u{10805}\\u{10808}\\u{1080A}-\\u{10835}\\u{10837}-\\u{10838}\\u{1083C}\\u{1083F}-\\u{10855}\\u{10860}-\\u{10876}\\u{10880}-\\u{1089E}\\u{108E0}-\\u{108F2}\\u{108F4}-\\u{108F5}\\u{10900}-\\u{10915}\\u{10920}-\\u{10939}\\u{10980}-\\u{109B7}\\u{109BE}-\\u{109BF}\\u{10A00}\\u{10A01}-\\u{10A03}\\u{10A05}-\\u{10A06}\\u{10A0C}-\\u{10A0F}\\u{10A10}-\\u{10A13}\\u{10A15}-\\u{10A17}\\u{10A19}-\\u{10A33}\\u{10A38}-\\u{10A3A}\\u{10A3F}\\u{10A60}-\\u{10A7C}\\u{10A80}-\\u{10A9C}\\u{10AC0}-\\u{10AC7}\\u{10AC9}-\\u{10AE4}\\u{10AE5}-\\u{10AE6}\\u{10B00}-\\u{10B35}\\u{10B40}-\\u{10B55}\\u{10B60}-\\u{10B72}\\u{10B80}-\\u{10B91}\\u{10C00}-\\u{10C48}\\u{10C80}-\\u{10CB2}\\u{10CC0}-\\u{10CF2}\\u{11000}\\u{11001}\\u{11002}\\u{11003}-\\u{11037}\\u{11038}-\\u{11046}\\u{11066}-\\u{1106F}\\u{1107F}-\\u{11081}\\u{11082}\\u{11083}-\\u{110AF}\\u{110B0}-\\u{110B2}\\u{110B3}-\\u{110B6}\\u{110B7}-\\u{110B8}\\u{110B9}-\\u{110BA}\\u{110D0}-\\u{110E8}\\u{110F0}-\\u{110F9}\\u{11100}-\\u{11102}\\u{11103}-\\u{11126}\\u{11127}-\\u{1112B}\\u{1112C}\\u{1112D}-\\u{11134}\\u{11136}-\\u{1113F}\\u{11150}-\\u{11172}\\u{11173}\\u{11176}\\u{11180}-\\u{11181}\\u{11182}\\u{11183}-\\u{111B2}\\u{111B3}-\\u{111B5}\\u{111B6}-\\u{111BE}\\u{111BF}-\\u{111C0}\\u{111C1}-\\u{111C4}\\u{111CA}-\\u{111CC}\\u{111D0}-\\u{111D9}\\u{111DA}\\u{111DC}\\u{11200}-\\u{11211}\\u{11213}-\\u{1122B}\\u{1122C}-\\u{1122E}\\u{1122F}-\\u{11231}\\u{11232}-\\u{11233}\\u{11234}\\u{11235}\\u{11236}-\\u{11237}\\u{1123E}\\u{11280}-\\u{11286}\\u{11288}\\u{1128A}-\\u{1128D}\\u{1128F}-\\u{1129D}\\u{1129F}-\\u{112A8}\\u{112B0}-\\u{112DE}\\u{112DF}\\u{112E0}-\\u{112E2}\\u{112E3}-\\u{112EA}\\u{112F0}-\\u{112F9}\\u{11300}-\\u{11301}\\u{11302}-\\u{11303}\\u{11305}-\\u{1130C}\\u{1130F}-\\u{11310}\\u{11313}-\\u{11328}\\u{1132A}-\\u{11330}\\u{11332}-\\u{11333}\\u{11335}-\\u{11339}\\u{1133C}\\u{1133D}\\u{1133E}-\\u{1133F}\\u{11340}\\u{11341}-\\u{11344}\\u{11347}-\\u{11348}\\u{1134B}-\\u{1134D}\\u{11350}\\u{11357}\\u{1135D}-\\u{11361}\\u{11362}-\\u{11363}\\u{11366}-\\u{1136C}\\u{11370}-\\u{11374}\\u{11400}-\\u{11434}\\u{11435}-\\u{11437}\\u{11438}-\\u{1143F}\\u{11440}-\\u{11441}\\u{11442}-\\u{11444}\\u{11445}\\u{11446}\\u{11447}-\\u{1144A}\\u{11450}-\\u{11459}\\u{11480}-\\u{114AF}\\u{114B0}-\\u{114B2}\\u{114B3}-\\u{114B8}\\u{114B9}\\u{114BA}\\u{114BB}-\\u{114BE}\\u{114BF}-\\u{114C0}\\u{114C1}\\u{114C2}-\\u{114C3}\\u{114C4}-\\u{114C5}\\u{114C7}\\u{114D0}-\\u{114D9}\\u{11580}-\\u{115AE}\\u{115AF}-\\u{115B1}\\u{115B2}-\\u{115B5}\\u{115B8}-\\u{115BB}\\u{115BC}-\\u{115BD}\\u{115BE}\\u{115BF}-\\u{115C0}\\u{115D8}-\\u{115DB}\\u{115DC}-\\u{115DD}\\u{11600}-\\u{1162F}\\u{11630}-\\u{11632}\\u{11633}-\\u{1163A}\\u{1163B}-\\u{1163C}\\u{1163D}\\u{1163E}\\u{1163F}-\\u{11640}\\u{11644}\\u{11650}-\\u{11659}\\u{11680}-\\u{116AA}\\u{116AB}\\u{116AC}\\u{116AD}\\u{116AE}-\\u{116AF}\\u{116B0}-\\u{116B5}\\u{116B6}\\u{116B7}\\u{116C0}-\\u{116C9}\\u{11700}-\\u{11719}\\u{1171D}-\\u{1171F}\\u{11720}-\\u{11721}\\u{11722}-\\u{11725}\\u{11726}\\u{11727}-\\u{1172B}\\u{11730}-\\u{11739}\\u{118A0}-\\u{118DF}\\u{118E0}-\\u{118E9}\\u{118FF}\\u{11AC0}-\\u{11AF8}\\u{11C00}-\\u{11C08}\\u{11C0A}-\\u{11C2E}\\u{11C2F}\\u{11C30}-\\u{11C36}\\u{11C38}-\\u{11C3D}\\u{11C3E}\\u{11C3F}\\u{11C40}\\u{11C50}-\\u{11C59}\\u{11C72}-\\u{11C8F}\\u{11C92}-\\u{11CA7}\\u{11CA9}\\u{11CAA}-\\u{11CB0}\\u{11CB1}\\u{11CB2}-\\u{11CB3}\\u{11CB4}\\u{11CB5}-\\u{11CB6}\\u{12000}-\\u{12399}\\u{12400}-\\u{1246E}\\u{12480}-\\u{12543}\\u{13000}-\\u{1342E}\\u{14400}-\\u{14646}\\u{16800}-\\u{16A38}\\u{16A40}-\\u{16A5E}\\u{16A60}-\\u{16A69}\\u{16AD0}-\\u{16AED}\\u{16AF0}-\\u{16AF4}\\u{16B00}-\\u{16B2F}\\u{16B30}-\\u{16B36}\\u{16B40}-\\u{16B43}\\u{16B50}-\\u{16B59}\\u{16B63}-\\u{16B77}\\u{16B7D}-\\u{16B8F}\\u{16F00}-\\u{16F44}\\u{16F50}\\u{16F51}-\\u{16F7E}\\u{16F8F}-\\u{16F92}\\u{16F93}-\\u{16F9F}\\u{16FE0}\\u{17000}-\\u{187EC}\\u{18800}-\\u{18AF2}\\u{1B000}-\\u{1B001}\\u{1BC00}-\\u{1BC6A}\\u{1BC70}-\\u{1BC7C}\\u{1BC80}-\\u{1BC88}\\u{1BC90}-\\u{1BC99}\\u{1BC9D}-\\u{1BC9E}\\u{1D165}-\\u{1D166}\\u{1D167}-\\u{1D169}\\u{1D16D}-\\u{1D172}\\u{1D17B}-\\u{1D182}\\u{1D185}-\\u{1D18B}\\u{1D1AA}-\\u{1D1AD}\\u{1D242}-\\u{1D244}\\u{1D400}-\\u{1D454}\\u{1D456}-\\u{1D49C}\\u{1D49E}-\\u{1D49F}\\u{1D4A2}\\u{1D4A5}-\\u{1D4A6}\\u{1D4A9}-\\u{1D4AC}\\u{1D4AE}-\\u{1D4B9}\\u{1D4BB}\\u{1D4BD}-\\u{1D4C3}\\u{1D4C5}-\\u{1D505}\\u{1D507}-\\u{1D50A}\\u{1D50D}-\\u{1D514}\\u{1D516}-\\u{1D51C}\\u{1D51E}-\\u{1D539}\\u{1D53B}-\\u{1D53E}\\u{1D540}-\\u{1D544}\\u{1D546}\\u{1D54A}-\\u{1D550}\\u{1D552}-\\u{1D6A5}\\u{1D6A8}-\\u{1D6C0}\\u{1D6C2}-\\u{1D6DA}\\u{1D6DC}-\\u{1D6FA}\\u{1D6FC}-\\u{1D714}\\u{1D716}-\\u{1D734}\\u{1D736}-\\u{1D74E}\\u{1D750}-\\u{1D76E}\\u{1D770}-\\u{1D788}\\