From 3386ab0f835740954882e18f4e485ec8e0fe2a56 Mon Sep 17 00:00:00 2001 From: Ewoud Date: Wed, 13 Nov 2024 09:05:20 +0100 Subject: [PATCH 1/5] newui add table and ro (WIP newui/index.js - Add header StarLight newui/mainnav.js - remove some alert text newui/modules.css - add table layout - add input background (WIP) newui/modules.js - walkThroughModel: add parent - add findParentVar - Variable::createHTML: use ro, call receiveData for value - Variable::receiveData: deal with table type - Variable::generateData: deal with table type - TextVariable::generateData: deal with table type - SelectVariable::receiveData: deal with ro - SelectVariable::generateData: send options always - TextVariable::createHTML: create table html - TextVariable::generateHTML: no data generated UsertModE131: rename watches to patches --- data/index.js | 3 +- data/newui/index.js | 7 + data/newui/mainnav.js | 2 +- data/newui/modules.css | 27 +- data/newui/modules.js | 306 ++- misc/F_Panel2x2-16x16.json | 5151 ++++++++++++++++++++++++++++++++++++ misc/model.json | 102 +- misc/testOutput.txt | 4 +- src/User/UserModE131.h | 4 +- src/html_newui.h | 1116 ++++---- 10 files changed, 6128 insertions(+), 594 deletions(-) create mode 100644 misc/F_Panel2x2-16x16.json diff --git a/data/index.js b/data/index.js index ccdacd29..b1bdeb01 100644 --- a/data/index.js +++ b/data/index.js @@ -719,12 +719,13 @@ function varRemoveValuesForRow(variable, rowNr) { //process json from server, json is assumed to be an object function receiveData(json) { - // console.log("receiveData", json); if (isObject(json)) { for (let key of Object.keys(json)) { let value = json[key]; + // console.log("receiveData", key + ": " + JSON.stringify(json[key])); + //tbd: for each node of a variable (rowNr) //special commands diff --git a/data/newui/index.js b/data/newui/index.js index 63d25c7e..570aa473 100644 --- a/data/newui/index.js +++ b/data/newui/index.js @@ -26,9 +26,16 @@ class Controller { this.modules = new Modules(); + let body = gId("body"); + + body.innerHTML += `

StarLight 💫

` + // body.innerHTML += "

" + this.theme = new Theme(); this.theme.createHTML(); this.theme.getTheme(); + + // body.innerHTML += "

" this.mainNav = new MainNav(this.modules.model); this.mainNav.createHTML(); diff --git a/data/newui/mainnav.js b/data/newui/mainnav.js index ba902f48..3070e757 100644 --- a/data/newui/mainnav.js +++ b/data/newui/mainnav.js @@ -22,7 +22,7 @@ class MainNav { or shrink if there is nothing to show in the alerts area -->
-
some alert text
+
diff --git a/data/newui/modules.css b/data/newui/modules.css index 8c3d289d..e1d55230 100644 --- a/data/newui/modules.css +++ b/data/newui/modules.css @@ -23,7 +23,7 @@ label { } input { - background: transparent; + background: #b81d1d; color: var(--text-color); font-size: 8px; /*var(--font-size-s) not working for some reason */ } @@ -33,4 +33,27 @@ label { margin-left: 20px; /* border-radius: 12px; */ } - \ No newline at end of file + + /*table layout */ +.table { + font-family: Arial, Helvetica, sans-serif; + border-collapse: collapse; + width: 100%; + border-radius: 10px; /*does not seem to work */ + border-style: hidden; /* hide standard table (collapsed) border */ + box-shadow: 0 0 0 1px #666; /* this draws the table border */ +} + +.table td, .table th { + border: 1px solid #000000; + padding: 6px; + vertical-align: top; +} + +.table th { + /* padding-top: 12px; + padding-bottom: 12px; */ + text-align: left; + background-color: var(--th-color); + color: var(--label-color); +} diff --git a/data/newui/modules.js b/data/newui/modules.js index f054f74f..18b2dbe8 100644 --- a/data/newui/modules.js +++ b/data/newui/modules.js @@ -40,7 +40,7 @@ class Modules { //done after innerHTML as it needs to find the nodes. tbd: createHTMLFun adds to dom directly setDefaultValues(moduleJson) { // console.log("setDefaultValues", moduleJson) - controller.modules.walkThroughModel(function(variable) { //this.walkThroughModel not working for some reason??? + controller.modules.walkThroughModel(function(parent, variable) { //this.walkThroughModel not working for some reason??? if (Array.isArray(variable.value)) variable.value = variable.value[0] //temp hack to deal with table values @@ -48,7 +48,7 @@ class Modules { let variableClass = varJsonToClass(variable); variableClass.receiveData({"value":variable.value}); //receiveData knows how the value should be assigned to the node } - }, moduleJson.n) + }, moduleJson) } //temporary to test issue above @@ -67,15 +67,15 @@ class Modules { } //walkthrough, if a variable is returned by fun, it stops the walkthrough with this variable - walkThroughModel(fun, parent = this.model) { - for (let variable of parent) { + walkThroughModel(fun, parent = null) { + for (let variable of parent?parent.n:this.model) { let foundVar = null - foundVar = fun(variable); + foundVar = fun(parent, variable); if (foundVar) return foundVar; if (variable.n) { - foundVar = this.walkThroughModel(fun, variable.n); //recursive + foundVar = this.walkThroughModel(fun, variable); //recursive if (foundVar) return foundVar; } } @@ -83,7 +83,7 @@ class Modules { //loop through the model hierarchy and generateData data for each variable in the model generateData() { - this.walkThroughModel(function(variable) { + this.walkThroughModel(function(parent, variable) { let variableClass = varJsonToClass(variable); variableClass.generateData(); }) @@ -92,11 +92,18 @@ class Modules { //finds a var with id in the model, if found returns it findVar(pid, id) { // console.log("findVar", id, parent, model); - return this.walkThroughModel(function(variable){ + return this.walkThroughModel(function(parent, variable) { if (variable.pid == pid, variable.id == id) //found variable return variable; //this stops the walkThrough }) } + findParentVar(pid, id) { + // console.log("findVar", id, parent, model); + return this.walkThroughModel(function(parent, variable) { + if (parent && parent.id == pid && variable.id == id) //found variable + return parent; //this stops the walkThrough + }) + } previewBoard(canvasNode, buffer) { let boardColor; @@ -235,16 +242,34 @@ class Variable { } createHTML(node = ``) { - let code = `

- - ${node} -

` + + let code + if (this.variable.ro) { + code = `

+ + ${this.variable.value} +

` + + } else + { + code = `

+ + ${node} +

` + } + + //set the default value for this class (for liveServer generated by generateData) + let properties = {} + properties.value = this.variable.value; + this.receiveData(properties) //ask server for onUI let command = {}; command.onUI = [this.variable.pid + "." + this.variable.id]; controller.requestJson(command); // this can be done here because of the async nature of requestJson, better is to do it after innerHTML+=... + //this triggers receiveData for this class which processes onUI result (options, comment etc) + //child variables if (this.variable.n) { code += `

` for (let childVar of this.variable.n) { @@ -259,6 +284,8 @@ class Variable { //sets the value of the node to value of properties receiveData(properties) { if (this.node) { + + //set label if (properties.label) { let labelNode = this.node.parentNode.querySelector("label") if (labelNode) @@ -267,11 +294,61 @@ class Variable { this.node.parentNode.innerHTML = `` + this.node.parentNode.innerHTML } - if (Array.isArray(properties.value)) properties.value = properties.value[0] //temp hack to deal with table values - - if (properties.value != null && this.node.value != null) { - this.node.value = properties.value; + // if (Array.isArray(properties.value)) properties.value = properties.value[0] //temp hack to deal with table values + + // if (properties.value != null && this.node.value != null) { + // this.node.value = properties.value; + // } + + //set value + if (properties.value != null) { // && this.variable.type != "select" + let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + + // if (Array.isArray(properties.value)) + // console.log("table", properties.value) + if (!parentVar || parentVar.type != "table") { + if (this.variable.ro) { + if (this.node.innerHTML != null) + this.node.innerHTML = properties.value; + } else + { + if (this.node.value != null) + this.node.value = properties.value; + } + } else { + let nrOfRows = properties.value.length + // console.log("receiveData", this.variable, properties.value) + for (let rowNr = 0; rowNr < nrOfRows; rowNr++) { + let rowNode = gId(this.variable.pid + "." + this.variable.id + "#" + rowNr) + // console.log(rowNode) + if (rowNode) + rowNode.innerHTML = properties.value[rowNr] + else { + //add a row to the table + let tableNode = gId(parentVar.pid + "." + parentVar.id) + let tbodyNode = tableNode.querySelector("tbody"); + console.log("add table row", tableNode) + + // code += "" + + // for (let childVar of this.variable.n) { + // // let childClass = varJsonToClass(childVar) + // code += `` + // if (childVar.value) + // code += childVar.value[rowNr] + // // code += childClass.createHTML(); + // code += `` + // } + // code += "" + + } + + } + //find the node with + // let rowVar = controller.modules.findVar(this.variable.pid, this.variable.id + "#0") + } } + if (properties.comment) { let commentNode = this.node.parentNode.querySelector("comment") if (!commentNode) { @@ -280,6 +357,8 @@ class Variable { } commentNode.innerText = properties.comment } + + //set file if (properties.file) { let url; if (window.location.href.includes("127.0.0.1")) @@ -298,8 +377,23 @@ class Variable { //used by Live Server generateData(custom = `"value":${Math.random() * 256}`) { - if (custom != "") custom += ", " - controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}"comment":"${Math.random().toString(36).slice(2)}"}}`)); + //check if variable part of table + let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + + // if (parentVar.id) + // console.log("generateData parentVar", this.variable.pid, this.variable.id, parentVar); + + if (!parentVar || parentVar.type != "table") { + if (custom != "") custom += ", " + + controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}"comment":"${this.variable.id + Math.random().toString(36).slice(2)}"}}`)); + } + else { + // if (custom != "") custom += ", " + // custom = `"value":[${Math.random() * 256}, ${Math.random() * 256}, ${Math.random() * 256}]` + // console.log(`{"${this.variable.pid + "." + this.variable.id}":{${custom}}}`) + controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}}}`)); + } } } //class Variable @@ -307,7 +401,13 @@ class Variable { class TextVariable extends Variable { generateData() { - super.generateData(`"value":"${Math.random().toString(36).slice(2)}"`) + let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + + if (!parentVar || parentVar.type != "table") { + super.generateData(`"value":"${Math.random().toString(36).slice(2)}"`) + } else { + super.generateData(`"value":["${Math.random().toString(36).slice(2)}", "${Math.random().toString(36).slice(2)}"]`) + } } } //class TextVariable @@ -320,6 +420,8 @@ class CheckboxVariable extends Variable { receiveData(properties) { super.receiveData(properties) + + //set value if (this.node && properties.value != null) { // this.node.checked = properties.value this.node.indeterminate = (properties.value == -1); //tbd: gen -1 @@ -366,25 +468,43 @@ class ButtonVariable extends Variable { class SelectVariable extends Variable { createHTML() { - return super.createHTML(``) + return super.createHTML(``) } receiveData(properties) { super.receiveData(properties) - // if (this.node && properties.value != null) - // console.log("select.receiveData value", this.node, properties) - if (this.node && properties.options != null) { - this.node.innerHTML = "" - let optionCounter = 0; - for (let option of properties.options) - this.node.innerHTML+=`` - this.node.value = this.variable.value //select the right option + + if (this.node) { + if (this.variable.ro) { + if (properties.options != null) { + this.node.setAttribute("options", properties.options) + // console.log(properties.options, this.node.getAttribute("options")); + } + if (this.node.getAttribute("options")) { + let optionCounter = 0; + for (let option of this.node.getAttribute("options").split(",")) { + // console.log(option, properties.value) + if (optionCounter == properties.value) + this.node.innerText = option + optionCounter++; + } + } + } else { + if (properties.options != null) { + this.node.innerHTML = "" + let optionCounter = 0; + for (let option of properties.options) + this.node.innerHTML+=`` + } + if (this.variable.value) + this.node.value = this.variable.value //select the right option + } } } generateData() { //add sample options if not yet existing - if (this.node && this.node.childNodes.length == 0) + if (this.node) // && this.node.childNodes.length == 0 super.generateData(`"options":["ein","zwei","drei"]`) super.generateData(`"value":${Math.random() <.33?0:Math.random() <.66?1:2}`) @@ -429,11 +549,126 @@ class CanvasVariable extends Variable { class TableVariable extends Variable { createHTML() { - return super.createHTML(`
`); + let code = "" + code += `
` + code += `` + + code += `` + if (this.variable.n) { + code += "" + for (let childVar of this.variable.n) { + // let childClass = varJsonToClass(childVar) + code += `` + } + code += "" + } + if (this.variable.n) { + code += "" + + //select max length of values + let nrOfRows = 0 + for (let childVar of this.variable.n) { + // console.log("createHTML values", childVar.pid, childVar.id, childVar.value) + if (childVar.value && childVar.value.length > nrOfRows) + nrOfRows = childVar.value.length; + } + + // console.log(this.variable.n[0]) + for (let rowNr = 0; rowNr < nrOfRows; rowNr++) { + code += "" + + for (let childVar of this.variable.n) { + let childClass = varJsonToClass(childVar) + code += `` + } + code += "" + } + code += "" + } + // {/*
+ // + //
` + code += childVar.id + // code += childClass.createHTML(); + code += `
` + code += childClass.createHTML() + if (childVar.value) + code += childVar.value[rowNr] + // code += childClass.createHTML(); + code += `
+ // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + //
NameSizeTimeEdit-
+ //
F_Panel2x2-16x16.json
+ //
+ //
9748
+ //
+ //
78
+ //
+ //
+ //
+ //
F_panel080-048.sc
+ //
+ //
672
+ //
+ //
130
+ //
+ //
+ //
+ //
model.json
+ //
+ //
11681
+ //
+ //
23
+ //
+ //
+ //
+ // List of files + //
*/} + + code += `` + code += `
` + return code + } + + receiveData(properties) { + console.log("receiveData", properties); } generateData() { - super.generateData(`"value":"n/a"`) //no value needed for canvas... + // console.log("table.generateData") + // let custom = `"value":[1,2,3]` + ", " + // controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}"comment":"${Math.random().toString(36).slice(2)}"}}`)); } } //class TableVariable @@ -446,10 +681,11 @@ class Coord3DVariable extends Variable { receiveData(properties) { super.receiveData(properties) - if (this.node && properties.value != null) { - this.node.childNodes[0].value = properties.value.x - this.node.childNodes[1].value = properties.value.y - this.node.childNodes[2].value = properties.value.z + if (this.node && properties.value != null && this.node.childNodes) { + // console.log("Coord3D receiveData", properties, this.node.childNodes); + if (properties.value.x && this.node.childNodes[0]) this.node.childNodes[0].value = properties.value.x + if (properties.value.y && this.node.childNodes[1]) this.node.childNodes[1].value = properties.value.y + if (properties.value.z && this.node.childNodes[2]) this.node.childNodes[2].value = properties.value.z } } diff --git a/misc/F_Panel2x2-16x16.json b/misc/F_Panel2x2-16x16.json new file mode 100644 index 00000000..7db98a5f --- /dev/null +++ b/misc/F_Panel2x2-16x16.json @@ -0,0 +1,5151 @@ +{ + "name": "F_Panel2x2-16x16", + "nrOfLeds": 1024, + "width": 32, + "height": 32, + "depth": 1, + "ledSize": 5, + "shape": 0, + "outputs": [ + { + "pin": 2, + "leds": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 10, + 0 + ], + [ + 0, + 20, + 0 + ], + [ + 0, + 30, + 0 + ], + [ + 0, + 40, + 0 + ], + [ + 0, + 50, + 0 + ], + [ + 0, + 60, + 0 + ], + [ + 0, + 70, + 0 + ], + [ + 0, + 80, + 0 + ], + [ + 0, + 90, + 0 + ], + [ + 0, + 100, + 0 + ], + [ + 0, + 110, + 0 + ], + [ + 0, + 120, + 0 + ], + [ + 0, + 130, + 0 + ], + [ + 0, + 140, + 0 + ], + [ + 0, + 150, + 0 + ], + [ + 10, + 0, + 0 + ], + [ + 10, + 10, + 0 + ], + [ + 10, + 20, + 0 + ], + [ + 10, + 30, + 0 + ], + [ + 10, + 40, + 0 + ], + [ + 10, + 50, + 0 + ], + [ + 10, + 60, + 0 + ], + [ + 10, + 70, + 0 + ], + [ + 10, + 80, + 0 + ], + [ + 10, + 90, + 0 + ], + [ + 10, + 100, + 0 + ], + [ + 10, + 110, + 0 + ], + [ + 10, + 120, + 0 + ], + [ + 10, + 130, + 0 + ], + [ + 10, + 140, + 0 + ], + [ + 10, + 150, + 0 + ], + [ + 20, + 0, + 0 + ], + [ + 20, + 10, + 0 + ], + [ + 20, + 20, + 0 + ], + [ + 20, + 30, + 0 + ], + [ + 20, + 40, + 0 + ], + [ + 20, + 50, + 0 + ], + [ + 20, + 60, + 0 + ], + [ + 20, + 70, + 0 + ], + [ + 20, + 80, + 0 + ], + [ + 20, + 90, + 0 + ], + [ + 20, + 100, + 0 + ], + [ + 20, + 110, + 0 + ], + [ + 20, + 120, + 0 + ], + [ + 20, + 130, + 0 + ], + [ + 20, + 140, + 0 + ], + [ + 20, + 150, + 0 + ], + [ + 30, + 0, + 0 + ], + [ + 30, + 10, + 0 + ], + [ + 30, + 20, + 0 + ], + [ + 30, + 30, + 0 + ], + [ + 30, + 40, + 0 + ], + [ + 30, + 50, + 0 + ], + [ + 30, + 60, + 0 + ], + [ + 30, + 70, + 0 + ], + [ + 30, + 80, + 0 + ], + [ + 30, + 90, + 0 + ], + [ + 30, + 100, + 0 + ], + [ + 30, + 110, + 0 + ], + [ + 30, + 120, + 0 + ], + [ + 30, + 130, + 0 + ], + [ + 30, + 140, + 0 + ], + [ + 30, + 150, + 0 + ], + [ + 40, + 0, + 0 + ], + [ + 40, + 10, + 0 + ], + [ + 40, + 20, + 0 + ], + [ + 40, + 30, + 0 + ], + [ + 40, + 40, + 0 + ], + [ + 40, + 50, + 0 + ], + [ + 40, + 60, + 0 + ], + [ + 40, + 70, + 0 + ], + [ + 40, + 80, + 0 + ], + [ + 40, + 90, + 0 + ], + [ + 40, + 100, + 0 + ], + [ + 40, + 110, + 0 + ], + [ + 40, + 120, + 0 + ], + [ + 40, + 130, + 0 + ], + [ + 40, + 140, + 0 + ], + [ + 40, + 150, + 0 + ], + [ + 50, + 0, + 0 + ], + [ + 50, + 10, + 0 + ], + [ + 50, + 20, + 0 + ], + [ + 50, + 30, + 0 + ], + [ + 50, + 40, + 0 + ], + [ + 50, + 50, + 0 + ], + [ + 50, + 60, + 0 + ], + [ + 50, + 70, + 0 + ], + [ + 50, + 80, + 0 + ], + [ + 50, + 90, + 0 + ], + [ + 50, + 100, + 0 + ], + [ + 50, + 110, + 0 + ], + [ + 50, + 120, + 0 + ], + [ + 50, + 130, + 0 + ], + [ + 50, + 140, + 0 + ], + [ + 50, + 150, + 0 + ], + [ + 60, + 0, + 0 + ], + [ + 60, + 10, + 0 + ], + [ + 60, + 20, + 0 + ], + [ + 60, + 30, + 0 + ], + [ + 60, + 40, + 0 + ], + [ + 60, + 50, + 0 + ], + [ + 60, + 60, + 0 + ], + [ + 60, + 70, + 0 + ], + [ + 60, + 80, + 0 + ], + [ + 60, + 90, + 0 + ], + [ + 60, + 100, + 0 + ], + [ + 60, + 110, + 0 + ], + [ + 60, + 120, + 0 + ], + [ + 60, + 130, + 0 + ], + [ + 60, + 140, + 0 + ], + [ + 60, + 150, + 0 + ], + [ + 70, + 0, + 0 + ], + [ + 70, + 10, + 0 + ], + [ + 70, + 20, + 0 + ], + [ + 70, + 30, + 0 + ], + [ + 70, + 40, + 0 + ], + [ + 70, + 50, + 0 + ], + [ + 70, + 60, + 0 + ], + [ + 70, + 70, + 0 + ], + [ + 70, + 80, + 0 + ], + [ + 70, + 90, + 0 + ], + [ + 70, + 100, + 0 + ], + [ + 70, + 110, + 0 + ], + [ + 70, + 120, + 0 + ], + [ + 70, + 130, + 0 + ], + [ + 70, + 140, + 0 + ], + [ + 70, + 150, + 0 + ], + [ + 80, + 0, + 0 + ], + [ + 80, + 10, + 0 + ], + [ + 80, + 20, + 0 + ], + [ + 80, + 30, + 0 + ], + [ + 80, + 40, + 0 + ], + [ + 80, + 50, + 0 + ], + [ + 80, + 60, + 0 + ], + [ + 80, + 70, + 0 + ], + [ + 80, + 80, + 0 + ], + [ + 80, + 90, + 0 + ], + [ + 80, + 100, + 0 + ], + [ + 80, + 110, + 0 + ], + [ + 80, + 120, + 0 + ], + [ + 80, + 130, + 0 + ], + [ + 80, + 140, + 0 + ], + [ + 80, + 150, + 0 + ], + [ + 90, + 0, + 0 + ], + [ + 90, + 10, + 0 + ], + [ + 90, + 20, + 0 + ], + [ + 90, + 30, + 0 + ], + [ + 90, + 40, + 0 + ], + [ + 90, + 50, + 0 + ], + [ + 90, + 60, + 0 + ], + [ + 90, + 70, + 0 + ], + [ + 90, + 80, + 0 + ], + [ + 90, + 90, + 0 + ], + [ + 90, + 100, + 0 + ], + [ + 90, + 110, + 0 + ], + [ + 90, + 120, + 0 + ], + [ + 90, + 130, + 0 + ], + [ + 90, + 140, + 0 + ], + [ + 90, + 150, + 0 + ], + [ + 100, + 0, + 0 + ], + [ + 100, + 10, + 0 + ], + [ + 100, + 20, + 0 + ], + [ + 100, + 30, + 0 + ], + [ + 100, + 40, + 0 + ], + [ + 100, + 50, + 0 + ], + [ + 100, + 60, + 0 + ], + [ + 100, + 70, + 0 + ], + [ + 100, + 80, + 0 + ], + [ + 100, + 90, + 0 + ], + [ + 100, + 100, + 0 + ], + [ + 100, + 110, + 0 + ], + [ + 100, + 120, + 0 + ], + [ + 100, + 130, + 0 + ], + [ + 100, + 140, + 0 + ], + [ + 100, + 150, + 0 + ], + [ + 110, + 0, + 0 + ], + [ + 110, + 10, + 0 + ], + [ + 110, + 20, + 0 + ], + [ + 110, + 30, + 0 + ], + [ + 110, + 40, + 0 + ], + [ + 110, + 50, + 0 + ], + [ + 110, + 60, + 0 + ], + [ + 110, + 70, + 0 + ], + [ + 110, + 80, + 0 + ], + [ + 110, + 90, + 0 + ], + [ + 110, + 100, + 0 + ], + [ + 110, + 110, + 0 + ], + [ + 110, + 120, + 0 + ], + [ + 110, + 130, + 0 + ], + [ + 110, + 140, + 0 + ], + [ + 110, + 150, + 0 + ], + [ + 120, + 0, + 0 + ], + [ + 120, + 10, + 0 + ], + [ + 120, + 20, + 0 + ], + [ + 120, + 30, + 0 + ], + [ + 120, + 40, + 0 + ], + [ + 120, + 50, + 0 + ], + [ + 120, + 60, + 0 + ], + [ + 120, + 70, + 0 + ], + [ + 120, + 80, + 0 + ], + [ + 120, + 90, + 0 + ], + [ + 120, + 100, + 0 + ], + [ + 120, + 110, + 0 + ], + [ + 120, + 120, + 0 + ], + [ + 120, + 130, + 0 + ], + [ + 120, + 140, + 0 + ], + [ + 120, + 150, + 0 + ], + [ + 130, + 0, + 0 + ], + [ + 130, + 10, + 0 + ], + [ + 130, + 20, + 0 + ], + [ + 130, + 30, + 0 + ], + [ + 130, + 40, + 0 + ], + [ + 130, + 50, + 0 + ], + [ + 130, + 60, + 0 + ], + [ + 130, + 70, + 0 + ], + [ + 130, + 80, + 0 + ], + [ + 130, + 90, + 0 + ], + [ + 130, + 100, + 0 + ], + [ + 130, + 110, + 0 + ], + [ + 130, + 120, + 0 + ], + [ + 130, + 130, + 0 + ], + [ + 130, + 140, + 0 + ], + [ + 130, + 150, + 0 + ], + [ + 140, + 0, + 0 + ], + [ + 140, + 10, + 0 + ], + [ + 140, + 20, + 0 + ], + [ + 140, + 30, + 0 + ], + [ + 140, + 40, + 0 + ], + [ + 140, + 50, + 0 + ], + [ + 140, + 60, + 0 + ], + [ + 140, + 70, + 0 + ], + [ + 140, + 80, + 0 + ], + [ + 140, + 90, + 0 + ], + [ + 140, + 100, + 0 + ], + [ + 140, + 110, + 0 + ], + [ + 140, + 120, + 0 + ], + [ + 140, + 130, + 0 + ], + [ + 140, + 140, + 0 + ], + [ + 140, + 150, + 0 + ], + [ + 150, + 0, + 0 + ], + [ + 150, + 10, + 0 + ], + [ + 150, + 20, + 0 + ], + [ + 150, + 30, + 0 + ], + [ + 150, + 40, + 0 + ], + [ + 150, + 50, + 0 + ], + [ + 150, + 60, + 0 + ], + [ + 150, + 70, + 0 + ], + [ + 150, + 80, + 0 + ], + [ + 150, + 90, + 0 + ], + [ + 150, + 100, + 0 + ], + [ + 150, + 110, + 0 + ], + [ + 150, + 120, + 0 + ], + [ + 150, + 130, + 0 + ], + [ + 150, + 140, + 0 + ], + [ + 150, + 150, + 0 + ] + ] + }, + { + "pin": 2, + "leds": [ + [ + 160, + 0, + 0 + ], + [ + 160, + 10, + 0 + ], + [ + 160, + 20, + 0 + ], + [ + 160, + 30, + 0 + ], + [ + 160, + 40, + 0 + ], + [ + 160, + 50, + 0 + ], + [ + 160, + 60, + 0 + ], + [ + 160, + 70, + 0 + ], + [ + 160, + 80, + 0 + ], + [ + 160, + 90, + 0 + ], + [ + 160, + 100, + 0 + ], + [ + 160, + 110, + 0 + ], + [ + 160, + 120, + 0 + ], + [ + 160, + 130, + 0 + ], + [ + 160, + 140, + 0 + ], + [ + 160, + 150, + 0 + ], + [ + 170, + 0, + 0 + ], + [ + 170, + 10, + 0 + ], + [ + 170, + 20, + 0 + ], + [ + 170, + 30, + 0 + ], + [ + 170, + 40, + 0 + ], + [ + 170, + 50, + 0 + ], + [ + 170, + 60, + 0 + ], + [ + 170, + 70, + 0 + ], + [ + 170, + 80, + 0 + ], + [ + 170, + 90, + 0 + ], + [ + 170, + 100, + 0 + ], + [ + 170, + 110, + 0 + ], + [ + 170, + 120, + 0 + ], + [ + 170, + 130, + 0 + ], + [ + 170, + 140, + 0 + ], + [ + 170, + 150, + 0 + ], + [ + 180, + 0, + 0 + ], + [ + 180, + 10, + 0 + ], + [ + 180, + 20, + 0 + ], + [ + 180, + 30, + 0 + ], + [ + 180, + 40, + 0 + ], + [ + 180, + 50, + 0 + ], + [ + 180, + 60, + 0 + ], + [ + 180, + 70, + 0 + ], + [ + 180, + 80, + 0 + ], + [ + 180, + 90, + 0 + ], + [ + 180, + 100, + 0 + ], + [ + 180, + 110, + 0 + ], + [ + 180, + 120, + 0 + ], + [ + 180, + 130, + 0 + ], + [ + 180, + 140, + 0 + ], + [ + 180, + 150, + 0 + ], + [ + 190, + 0, + 0 + ], + [ + 190, + 10, + 0 + ], + [ + 190, + 20, + 0 + ], + [ + 190, + 30, + 0 + ], + [ + 190, + 40, + 0 + ], + [ + 190, + 50, + 0 + ], + [ + 190, + 60, + 0 + ], + [ + 190, + 70, + 0 + ], + [ + 190, + 80, + 0 + ], + [ + 190, + 90, + 0 + ], + [ + 190, + 100, + 0 + ], + [ + 190, + 110, + 0 + ], + [ + 190, + 120, + 0 + ], + [ + 190, + 130, + 0 + ], + [ + 190, + 140, + 0 + ], + [ + 190, + 150, + 0 + ], + [ + 200, + 0, + 0 + ], + [ + 200, + 10, + 0 + ], + [ + 200, + 20, + 0 + ], + [ + 200, + 30, + 0 + ], + [ + 200, + 40, + 0 + ], + [ + 200, + 50, + 0 + ], + [ + 200, + 60, + 0 + ], + [ + 200, + 70, + 0 + ], + [ + 200, + 80, + 0 + ], + [ + 200, + 90, + 0 + ], + [ + 200, + 100, + 0 + ], + [ + 200, + 110, + 0 + ], + [ + 200, + 120, + 0 + ], + [ + 200, + 130, + 0 + ], + [ + 200, + 140, + 0 + ], + [ + 200, + 150, + 0 + ], + [ + 210, + 0, + 0 + ], + [ + 210, + 10, + 0 + ], + [ + 210, + 20, + 0 + ], + [ + 210, + 30, + 0 + ], + [ + 210, + 40, + 0 + ], + [ + 210, + 50, + 0 + ], + [ + 210, + 60, + 0 + ], + [ + 210, + 70, + 0 + ], + [ + 210, + 80, + 0 + ], + [ + 210, + 90, + 0 + ], + [ + 210, + 100, + 0 + ], + [ + 210, + 110, + 0 + ], + [ + 210, + 120, + 0 + ], + [ + 210, + 130, + 0 + ], + [ + 210, + 140, + 0 + ], + [ + 210, + 150, + 0 + ], + [ + 220, + 0, + 0 + ], + [ + 220, + 10, + 0 + ], + [ + 220, + 20, + 0 + ], + [ + 220, + 30, + 0 + ], + [ + 220, + 40, + 0 + ], + [ + 220, + 50, + 0 + ], + [ + 220, + 60, + 0 + ], + [ + 220, + 70, + 0 + ], + [ + 220, + 80, + 0 + ], + [ + 220, + 90, + 0 + ], + [ + 220, + 100, + 0 + ], + [ + 220, + 110, + 0 + ], + [ + 220, + 120, + 0 + ], + [ + 220, + 130, + 0 + ], + [ + 220, + 140, + 0 + ], + [ + 220, + 150, + 0 + ], + [ + 230, + 0, + 0 + ], + [ + 230, + 10, + 0 + ], + [ + 230, + 20, + 0 + ], + [ + 230, + 30, + 0 + ], + [ + 230, + 40, + 0 + ], + [ + 230, + 50, + 0 + ], + [ + 230, + 60, + 0 + ], + [ + 230, + 70, + 0 + ], + [ + 230, + 80, + 0 + ], + [ + 230, + 90, + 0 + ], + [ + 230, + 100, + 0 + ], + [ + 230, + 110, + 0 + ], + [ + 230, + 120, + 0 + ], + [ + 230, + 130, + 0 + ], + [ + 230, + 140, + 0 + ], + [ + 230, + 150, + 0 + ], + [ + 240, + 0, + 0 + ], + [ + 240, + 10, + 0 + ], + [ + 240, + 20, + 0 + ], + [ + 240, + 30, + 0 + ], + [ + 240, + 40, + 0 + ], + [ + 240, + 50, + 0 + ], + [ + 240, + 60, + 0 + ], + [ + 240, + 70, + 0 + ], + [ + 240, + 80, + 0 + ], + [ + 240, + 90, + 0 + ], + [ + 240, + 100, + 0 + ], + [ + 240, + 110, + 0 + ], + [ + 240, + 120, + 0 + ], + [ + 240, + 130, + 0 + ], + [ + 240, + 140, + 0 + ], + [ + 240, + 150, + 0 + ], + [ + 250, + 0, + 0 + ], + [ + 250, + 10, + 0 + ], + [ + 250, + 20, + 0 + ], + [ + 250, + 30, + 0 + ], + [ + 250, + 40, + 0 + ], + [ + 250, + 50, + 0 + ], + [ + 250, + 60, + 0 + ], + [ + 250, + 70, + 0 + ], + [ + 250, + 80, + 0 + ], + [ + 250, + 90, + 0 + ], + [ + 250, + 100, + 0 + ], + [ + 250, + 110, + 0 + ], + [ + 250, + 120, + 0 + ], + [ + 250, + 130, + 0 + ], + [ + 250, + 140, + 0 + ], + [ + 250, + 150, + 0 + ], + [ + 260, + 0, + 0 + ], + [ + 260, + 10, + 0 + ], + [ + 260, + 20, + 0 + ], + [ + 260, + 30, + 0 + ], + [ + 260, + 40, + 0 + ], + [ + 260, + 50, + 0 + ], + [ + 260, + 60, + 0 + ], + [ + 260, + 70, + 0 + ], + [ + 260, + 80, + 0 + ], + [ + 260, + 90, + 0 + ], + [ + 260, + 100, + 0 + ], + [ + 260, + 110, + 0 + ], + [ + 260, + 120, + 0 + ], + [ + 260, + 130, + 0 + ], + [ + 260, + 140, + 0 + ], + [ + 260, + 150, + 0 + ], + [ + 270, + 0, + 0 + ], + [ + 270, + 10, + 0 + ], + [ + 270, + 20, + 0 + ], + [ + 270, + 30, + 0 + ], + [ + 270, + 40, + 0 + ], + [ + 270, + 50, + 0 + ], + [ + 270, + 60, + 0 + ], + [ + 270, + 70, + 0 + ], + [ + 270, + 80, + 0 + ], + [ + 270, + 90, + 0 + ], + [ + 270, + 100, + 0 + ], + [ + 270, + 110, + 0 + ], + [ + 270, + 120, + 0 + ], + [ + 270, + 130, + 0 + ], + [ + 270, + 140, + 0 + ], + [ + 270, + 150, + 0 + ], + [ + 280, + 0, + 0 + ], + [ + 280, + 10, + 0 + ], + [ + 280, + 20, + 0 + ], + [ + 280, + 30, + 0 + ], + [ + 280, + 40, + 0 + ], + [ + 280, + 50, + 0 + ], + [ + 280, + 60, + 0 + ], + [ + 280, + 70, + 0 + ], + [ + 280, + 80, + 0 + ], + [ + 280, + 90, + 0 + ], + [ + 280, + 100, + 0 + ], + [ + 280, + 110, + 0 + ], + [ + 280, + 120, + 0 + ], + [ + 280, + 130, + 0 + ], + [ + 280, + 140, + 0 + ], + [ + 280, + 150, + 0 + ], + [ + 290, + 0, + 0 + ], + [ + 290, + 10, + 0 + ], + [ + 290, + 20, + 0 + ], + [ + 290, + 30, + 0 + ], + [ + 290, + 40, + 0 + ], + [ + 290, + 50, + 0 + ], + [ + 290, + 60, + 0 + ], + [ + 290, + 70, + 0 + ], + [ + 290, + 80, + 0 + ], + [ + 290, + 90, + 0 + ], + [ + 290, + 100, + 0 + ], + [ + 290, + 110, + 0 + ], + [ + 290, + 120, + 0 + ], + [ + 290, + 130, + 0 + ], + [ + 290, + 140, + 0 + ], + [ + 290, + 150, + 0 + ], + [ + 300, + 0, + 0 + ], + [ + 300, + 10, + 0 + ], + [ + 300, + 20, + 0 + ], + [ + 300, + 30, + 0 + ], + [ + 300, + 40, + 0 + ], + [ + 300, + 50, + 0 + ], + [ + 300, + 60, + 0 + ], + [ + 300, + 70, + 0 + ], + [ + 300, + 80, + 0 + ], + [ + 300, + 90, + 0 + ], + [ + 300, + 100, + 0 + ], + [ + 300, + 110, + 0 + ], + [ + 300, + 120, + 0 + ], + [ + 300, + 130, + 0 + ], + [ + 300, + 140, + 0 + ], + [ + 300, + 150, + 0 + ], + [ + 310, + 0, + 0 + ], + [ + 310, + 10, + 0 + ], + [ + 310, + 20, + 0 + ], + [ + 310, + 30, + 0 + ], + [ + 310, + 40, + 0 + ], + [ + 310, + 50, + 0 + ], + [ + 310, + 60, + 0 + ], + [ + 310, + 70, + 0 + ], + [ + 310, + 80, + 0 + ], + [ + 310, + 90, + 0 + ], + [ + 310, + 100, + 0 + ], + [ + 310, + 110, + 0 + ], + [ + 310, + 120, + 0 + ], + [ + 310, + 130, + 0 + ], + [ + 310, + 140, + 0 + ], + [ + 310, + 150, + 0 + ] + ] + }, + { + "pin": 2, + "leds": [ + [ + 0, + 160, + 0 + ], + [ + 0, + 170, + 0 + ], + [ + 0, + 180, + 0 + ], + [ + 0, + 190, + 0 + ], + [ + 0, + 200, + 0 + ], + [ + 0, + 210, + 0 + ], + [ + 0, + 220, + 0 + ], + [ + 0, + 230, + 0 + ], + [ + 0, + 240, + 0 + ], + [ + 0, + 250, + 0 + ], + [ + 0, + 260, + 0 + ], + [ + 0, + 270, + 0 + ], + [ + 0, + 280, + 0 + ], + [ + 0, + 290, + 0 + ], + [ + 0, + 300, + 0 + ], + [ + 0, + 310, + 0 + ], + [ + 10, + 160, + 0 + ], + [ + 10, + 170, + 0 + ], + [ + 10, + 180, + 0 + ], + [ + 10, + 190, + 0 + ], + [ + 10, + 200, + 0 + ], + [ + 10, + 210, + 0 + ], + [ + 10, + 220, + 0 + ], + [ + 10, + 230, + 0 + ], + [ + 10, + 240, + 0 + ], + [ + 10, + 250, + 0 + ], + [ + 10, + 260, + 0 + ], + [ + 10, + 270, + 0 + ], + [ + 10, + 280, + 0 + ], + [ + 10, + 290, + 0 + ], + [ + 10, + 300, + 0 + ], + [ + 10, + 310, + 0 + ], + [ + 20, + 160, + 0 + ], + [ + 20, + 170, + 0 + ], + [ + 20, + 180, + 0 + ], + [ + 20, + 190, + 0 + ], + [ + 20, + 200, + 0 + ], + [ + 20, + 210, + 0 + ], + [ + 20, + 220, + 0 + ], + [ + 20, + 230, + 0 + ], + [ + 20, + 240, + 0 + ], + [ + 20, + 250, + 0 + ], + [ + 20, + 260, + 0 + ], + [ + 20, + 270, + 0 + ], + [ + 20, + 280, + 0 + ], + [ + 20, + 290, + 0 + ], + [ + 20, + 300, + 0 + ], + [ + 20, + 310, + 0 + ], + [ + 30, + 160, + 0 + ], + [ + 30, + 170, + 0 + ], + [ + 30, + 180, + 0 + ], + [ + 30, + 190, + 0 + ], + [ + 30, + 200, + 0 + ], + [ + 30, + 210, + 0 + ], + [ + 30, + 220, + 0 + ], + [ + 30, + 230, + 0 + ], + [ + 30, + 240, + 0 + ], + [ + 30, + 250, + 0 + ], + [ + 30, + 260, + 0 + ], + [ + 30, + 270, + 0 + ], + [ + 30, + 280, + 0 + ], + [ + 30, + 290, + 0 + ], + [ + 30, + 300, + 0 + ], + [ + 30, + 310, + 0 + ], + [ + 40, + 160, + 0 + ], + [ + 40, + 170, + 0 + ], + [ + 40, + 180, + 0 + ], + [ + 40, + 190, + 0 + ], + [ + 40, + 200, + 0 + ], + [ + 40, + 210, + 0 + ], + [ + 40, + 220, + 0 + ], + [ + 40, + 230, + 0 + ], + [ + 40, + 240, + 0 + ], + [ + 40, + 250, + 0 + ], + [ + 40, + 260, + 0 + ], + [ + 40, + 270, + 0 + ], + [ + 40, + 280, + 0 + ], + [ + 40, + 290, + 0 + ], + [ + 40, + 300, + 0 + ], + [ + 40, + 310, + 0 + ], + [ + 50, + 160, + 0 + ], + [ + 50, + 170, + 0 + ], + [ + 50, + 180, + 0 + ], + [ + 50, + 190, + 0 + ], + [ + 50, + 200, + 0 + ], + [ + 50, + 210, + 0 + ], + [ + 50, + 220, + 0 + ], + [ + 50, + 230, + 0 + ], + [ + 50, + 240, + 0 + ], + [ + 50, + 250, + 0 + ], + [ + 50, + 260, + 0 + ], + [ + 50, + 270, + 0 + ], + [ + 50, + 280, + 0 + ], + [ + 50, + 290, + 0 + ], + [ + 50, + 300, + 0 + ], + [ + 50, + 310, + 0 + ], + [ + 60, + 160, + 0 + ], + [ + 60, + 170, + 0 + ], + [ + 60, + 180, + 0 + ], + [ + 60, + 190, + 0 + ], + [ + 60, + 200, + 0 + ], + [ + 60, + 210, + 0 + ], + [ + 60, + 220, + 0 + ], + [ + 60, + 230, + 0 + ], + [ + 60, + 240, + 0 + ], + [ + 60, + 250, + 0 + ], + [ + 60, + 260, + 0 + ], + [ + 60, + 270, + 0 + ], + [ + 60, + 280, + 0 + ], + [ + 60, + 290, + 0 + ], + [ + 60, + 300, + 0 + ], + [ + 60, + 310, + 0 + ], + [ + 70, + 160, + 0 + ], + [ + 70, + 170, + 0 + ], + [ + 70, + 180, + 0 + ], + [ + 70, + 190, + 0 + ], + [ + 70, + 200, + 0 + ], + [ + 70, + 210, + 0 + ], + [ + 70, + 220, + 0 + ], + [ + 70, + 230, + 0 + ], + [ + 70, + 240, + 0 + ], + [ + 70, + 250, + 0 + ], + [ + 70, + 260, + 0 + ], + [ + 70, + 270, + 0 + ], + [ + 70, + 280, + 0 + ], + [ + 70, + 290, + 0 + ], + [ + 70, + 300, + 0 + ], + [ + 70, + 310, + 0 + ], + [ + 80, + 160, + 0 + ], + [ + 80, + 170, + 0 + ], + [ + 80, + 180, + 0 + ], + [ + 80, + 190, + 0 + ], + [ + 80, + 200, + 0 + ], + [ + 80, + 210, + 0 + ], + [ + 80, + 220, + 0 + ], + [ + 80, + 230, + 0 + ], + [ + 80, + 240, + 0 + ], + [ + 80, + 250, + 0 + ], + [ + 80, + 260, + 0 + ], + [ + 80, + 270, + 0 + ], + [ + 80, + 280, + 0 + ], + [ + 80, + 290, + 0 + ], + [ + 80, + 300, + 0 + ], + [ + 80, + 310, + 0 + ], + [ + 90, + 160, + 0 + ], + [ + 90, + 170, + 0 + ], + [ + 90, + 180, + 0 + ], + [ + 90, + 190, + 0 + ], + [ + 90, + 200, + 0 + ], + [ + 90, + 210, + 0 + ], + [ + 90, + 220, + 0 + ], + [ + 90, + 230, + 0 + ], + [ + 90, + 240, + 0 + ], + [ + 90, + 250, + 0 + ], + [ + 90, + 260, + 0 + ], + [ + 90, + 270, + 0 + ], + [ + 90, + 280, + 0 + ], + [ + 90, + 290, + 0 + ], + [ + 90, + 300, + 0 + ], + [ + 90, + 310, + 0 + ], + [ + 100, + 160, + 0 + ], + [ + 100, + 170, + 0 + ], + [ + 100, + 180, + 0 + ], + [ + 100, + 190, + 0 + ], + [ + 100, + 200, + 0 + ], + [ + 100, + 210, + 0 + ], + [ + 100, + 220, + 0 + ], + [ + 100, + 230, + 0 + ], + [ + 100, + 240, + 0 + ], + [ + 100, + 250, + 0 + ], + [ + 100, + 260, + 0 + ], + [ + 100, + 270, + 0 + ], + [ + 100, + 280, + 0 + ], + [ + 100, + 290, + 0 + ], + [ + 100, + 300, + 0 + ], + [ + 100, + 310, + 0 + ], + [ + 110, + 160, + 0 + ], + [ + 110, + 170, + 0 + ], + [ + 110, + 180, + 0 + ], + [ + 110, + 190, + 0 + ], + [ + 110, + 200, + 0 + ], + [ + 110, + 210, + 0 + ], + [ + 110, + 220, + 0 + ], + [ + 110, + 230, + 0 + ], + [ + 110, + 240, + 0 + ], + [ + 110, + 250, + 0 + ], + [ + 110, + 260, + 0 + ], + [ + 110, + 270, + 0 + ], + [ + 110, + 280, + 0 + ], + [ + 110, + 290, + 0 + ], + [ + 110, + 300, + 0 + ], + [ + 110, + 310, + 0 + ], + [ + 120, + 160, + 0 + ], + [ + 120, + 170, + 0 + ], + [ + 120, + 180, + 0 + ], + [ + 120, + 190, + 0 + ], + [ + 120, + 200, + 0 + ], + [ + 120, + 210, + 0 + ], + [ + 120, + 220, + 0 + ], + [ + 120, + 230, + 0 + ], + [ + 120, + 240, + 0 + ], + [ + 120, + 250, + 0 + ], + [ + 120, + 260, + 0 + ], + [ + 120, + 270, + 0 + ], + [ + 120, + 280, + 0 + ], + [ + 120, + 290, + 0 + ], + [ + 120, + 300, + 0 + ], + [ + 120, + 310, + 0 + ], + [ + 130, + 160, + 0 + ], + [ + 130, + 170, + 0 + ], + [ + 130, + 180, + 0 + ], + [ + 130, + 190, + 0 + ], + [ + 130, + 200, + 0 + ], + [ + 130, + 210, + 0 + ], + [ + 130, + 220, + 0 + ], + [ + 130, + 230, + 0 + ], + [ + 130, + 240, + 0 + ], + [ + 130, + 250, + 0 + ], + [ + 130, + 260, + 0 + ], + [ + 130, + 270, + 0 + ], + [ + 130, + 280, + 0 + ], + [ + 130, + 290, + 0 + ], + [ + 130, + 300, + 0 + ], + [ + 130, + 310, + 0 + ], + [ + 140, + 160, + 0 + ], + [ + 140, + 170, + 0 + ], + [ + 140, + 180, + 0 + ], + [ + 140, + 190, + 0 + ], + [ + 140, + 200, + 0 + ], + [ + 140, + 210, + 0 + ], + [ + 140, + 220, + 0 + ], + [ + 140, + 230, + 0 + ], + [ + 140, + 240, + 0 + ], + [ + 140, + 250, + 0 + ], + [ + 140, + 260, + 0 + ], + [ + 140, + 270, + 0 + ], + [ + 140, + 280, + 0 + ], + [ + 140, + 290, + 0 + ], + [ + 140, + 300, + 0 + ], + [ + 140, + 310, + 0 + ], + [ + 150, + 160, + 0 + ], + [ + 150, + 170, + 0 + ], + [ + 150, + 180, + 0 + ], + [ + 150, + 190, + 0 + ], + [ + 150, + 200, + 0 + ], + [ + 150, + 210, + 0 + ], + [ + 150, + 220, + 0 + ], + [ + 150, + 230, + 0 + ], + [ + 150, + 240, + 0 + ], + [ + 150, + 250, + 0 + ], + [ + 150, + 260, + 0 + ], + [ + 150, + 270, + 0 + ], + [ + 150, + 280, + 0 + ], + [ + 150, + 290, + 0 + ], + [ + 150, + 300, + 0 + ], + [ + 150, + 310, + 0 + ] + ] + }, + { + "pin": 2, + "leds": [ + [ + 160, + 160, + 0 + ], + [ + 160, + 170, + 0 + ], + [ + 160, + 180, + 0 + ], + [ + 160, + 190, + 0 + ], + [ + 160, + 200, + 0 + ], + [ + 160, + 210, + 0 + ], + [ + 160, + 220, + 0 + ], + [ + 160, + 230, + 0 + ], + [ + 160, + 240, + 0 + ], + [ + 160, + 250, + 0 + ], + [ + 160, + 260, + 0 + ], + [ + 160, + 270, + 0 + ], + [ + 160, + 280, + 0 + ], + [ + 160, + 290, + 0 + ], + [ + 160, + 300, + 0 + ], + [ + 160, + 310, + 0 + ], + [ + 170, + 160, + 0 + ], + [ + 170, + 170, + 0 + ], + [ + 170, + 180, + 0 + ], + [ + 170, + 190, + 0 + ], + [ + 170, + 200, + 0 + ], + [ + 170, + 210, + 0 + ], + [ + 170, + 220, + 0 + ], + [ + 170, + 230, + 0 + ], + [ + 170, + 240, + 0 + ], + [ + 170, + 250, + 0 + ], + [ + 170, + 260, + 0 + ], + [ + 170, + 270, + 0 + ], + [ + 170, + 280, + 0 + ], + [ + 170, + 290, + 0 + ], + [ + 170, + 300, + 0 + ], + [ + 170, + 310, + 0 + ], + [ + 180, + 160, + 0 + ], + [ + 180, + 170, + 0 + ], + [ + 180, + 180, + 0 + ], + [ + 180, + 190, + 0 + ], + [ + 180, + 200, + 0 + ], + [ + 180, + 210, + 0 + ], + [ + 180, + 220, + 0 + ], + [ + 180, + 230, + 0 + ], + [ + 180, + 240, + 0 + ], + [ + 180, + 250, + 0 + ], + [ + 180, + 260, + 0 + ], + [ + 180, + 270, + 0 + ], + [ + 180, + 280, + 0 + ], + [ + 180, + 290, + 0 + ], + [ + 180, + 300, + 0 + ], + [ + 180, + 310, + 0 + ], + [ + 190, + 160, + 0 + ], + [ + 190, + 170, + 0 + ], + [ + 190, + 180, + 0 + ], + [ + 190, + 190, + 0 + ], + [ + 190, + 200, + 0 + ], + [ + 190, + 210, + 0 + ], + [ + 190, + 220, + 0 + ], + [ + 190, + 230, + 0 + ], + [ + 190, + 240, + 0 + ], + [ + 190, + 250, + 0 + ], + [ + 190, + 260, + 0 + ], + [ + 190, + 270, + 0 + ], + [ + 190, + 280, + 0 + ], + [ + 190, + 290, + 0 + ], + [ + 190, + 300, + 0 + ], + [ + 190, + 310, + 0 + ], + [ + 200, + 160, + 0 + ], + [ + 200, + 170, + 0 + ], + [ + 200, + 180, + 0 + ], + [ + 200, + 190, + 0 + ], + [ + 200, + 200, + 0 + ], + [ + 200, + 210, + 0 + ], + [ + 200, + 220, + 0 + ], + [ + 200, + 230, + 0 + ], + [ + 200, + 240, + 0 + ], + [ + 200, + 250, + 0 + ], + [ + 200, + 260, + 0 + ], + [ + 200, + 270, + 0 + ], + [ + 200, + 280, + 0 + ], + [ + 200, + 290, + 0 + ], + [ + 200, + 300, + 0 + ], + [ + 200, + 310, + 0 + ], + [ + 210, + 160, + 0 + ], + [ + 210, + 170, + 0 + ], + [ + 210, + 180, + 0 + ], + [ + 210, + 190, + 0 + ], + [ + 210, + 200, + 0 + ], + [ + 210, + 210, + 0 + ], + [ + 210, + 220, + 0 + ], + [ + 210, + 230, + 0 + ], + [ + 210, + 240, + 0 + ], + [ + 210, + 250, + 0 + ], + [ + 210, + 260, + 0 + ], + [ + 210, + 270, + 0 + ], + [ + 210, + 280, + 0 + ], + [ + 210, + 290, + 0 + ], + [ + 210, + 300, + 0 + ], + [ + 210, + 310, + 0 + ], + [ + 220, + 160, + 0 + ], + [ + 220, + 170, + 0 + ], + [ + 220, + 180, + 0 + ], + [ + 220, + 190, + 0 + ], + [ + 220, + 200, + 0 + ], + [ + 220, + 210, + 0 + ], + [ + 220, + 220, + 0 + ], + [ + 220, + 230, + 0 + ], + [ + 220, + 240, + 0 + ], + [ + 220, + 250, + 0 + ], + [ + 220, + 260, + 0 + ], + [ + 220, + 270, + 0 + ], + [ + 220, + 280, + 0 + ], + [ + 220, + 290, + 0 + ], + [ + 220, + 300, + 0 + ], + [ + 220, + 310, + 0 + ], + [ + 230, + 160, + 0 + ], + [ + 230, + 170, + 0 + ], + [ + 230, + 180, + 0 + ], + [ + 230, + 190, + 0 + ], + [ + 230, + 200, + 0 + ], + [ + 230, + 210, + 0 + ], + [ + 230, + 220, + 0 + ], + [ + 230, + 230, + 0 + ], + [ + 230, + 240, + 0 + ], + [ + 230, + 250, + 0 + ], + [ + 230, + 260, + 0 + ], + [ + 230, + 270, + 0 + ], + [ + 230, + 280, + 0 + ], + [ + 230, + 290, + 0 + ], + [ + 230, + 300, + 0 + ], + [ + 230, + 310, + 0 + ], + [ + 240, + 160, + 0 + ], + [ + 240, + 170, + 0 + ], + [ + 240, + 180, + 0 + ], + [ + 240, + 190, + 0 + ], + [ + 240, + 200, + 0 + ], + [ + 240, + 210, + 0 + ], + [ + 240, + 220, + 0 + ], + [ + 240, + 230, + 0 + ], + [ + 240, + 240, + 0 + ], + [ + 240, + 250, + 0 + ], + [ + 240, + 260, + 0 + ], + [ + 240, + 270, + 0 + ], + [ + 240, + 280, + 0 + ], + [ + 240, + 290, + 0 + ], + [ + 240, + 300, + 0 + ], + [ + 240, + 310, + 0 + ], + [ + 250, + 160, + 0 + ], + [ + 250, + 170, + 0 + ], + [ + 250, + 180, + 0 + ], + [ + 250, + 190, + 0 + ], + [ + 250, + 200, + 0 + ], + [ + 250, + 210, + 0 + ], + [ + 250, + 220, + 0 + ], + [ + 250, + 230, + 0 + ], + [ + 250, + 240, + 0 + ], + [ + 250, + 250, + 0 + ], + [ + 250, + 260, + 0 + ], + [ + 250, + 270, + 0 + ], + [ + 250, + 280, + 0 + ], + [ + 250, + 290, + 0 + ], + [ + 250, + 300, + 0 + ], + [ + 250, + 310, + 0 + ], + [ + 260, + 160, + 0 + ], + [ + 260, + 170, + 0 + ], + [ + 260, + 180, + 0 + ], + [ + 260, + 190, + 0 + ], + [ + 260, + 200, + 0 + ], + [ + 260, + 210, + 0 + ], + [ + 260, + 220, + 0 + ], + [ + 260, + 230, + 0 + ], + [ + 260, + 240, + 0 + ], + [ + 260, + 250, + 0 + ], + [ + 260, + 260, + 0 + ], + [ + 260, + 270, + 0 + ], + [ + 260, + 280, + 0 + ], + [ + 260, + 290, + 0 + ], + [ + 260, + 300, + 0 + ], + [ + 260, + 310, + 0 + ], + [ + 270, + 160, + 0 + ], + [ + 270, + 170, + 0 + ], + [ + 270, + 180, + 0 + ], + [ + 270, + 190, + 0 + ], + [ + 270, + 200, + 0 + ], + [ + 270, + 210, + 0 + ], + [ + 270, + 220, + 0 + ], + [ + 270, + 230, + 0 + ], + [ + 270, + 240, + 0 + ], + [ + 270, + 250, + 0 + ], + [ + 270, + 260, + 0 + ], + [ + 270, + 270, + 0 + ], + [ + 270, + 280, + 0 + ], + [ + 270, + 290, + 0 + ], + [ + 270, + 300, + 0 + ], + [ + 270, + 310, + 0 + ], + [ + 280, + 160, + 0 + ], + [ + 280, + 170, + 0 + ], + [ + 280, + 180, + 0 + ], + [ + 280, + 190, + 0 + ], + [ + 280, + 200, + 0 + ], + [ + 280, + 210, + 0 + ], + [ + 280, + 220, + 0 + ], + [ + 280, + 230, + 0 + ], + [ + 280, + 240, + 0 + ], + [ + 280, + 250, + 0 + ], + [ + 280, + 260, + 0 + ], + [ + 280, + 270, + 0 + ], + [ + 280, + 280, + 0 + ], + [ + 280, + 290, + 0 + ], + [ + 280, + 300, + 0 + ], + [ + 280, + 310, + 0 + ], + [ + 290, + 160, + 0 + ], + [ + 290, + 170, + 0 + ], + [ + 290, + 180, + 0 + ], + [ + 290, + 190, + 0 + ], + [ + 290, + 200, + 0 + ], + [ + 290, + 210, + 0 + ], + [ + 290, + 220, + 0 + ], + [ + 290, + 230, + 0 + ], + [ + 290, + 240, + 0 + ], + [ + 290, + 250, + 0 + ], + [ + 290, + 260, + 0 + ], + [ + 290, + 270, + 0 + ], + [ + 290, + 280, + 0 + ], + [ + 290, + 290, + 0 + ], + [ + 290, + 300, + 0 + ], + [ + 290, + 310, + 0 + ], + [ + 300, + 160, + 0 + ], + [ + 300, + 170, + 0 + ], + [ + 300, + 180, + 0 + ], + [ + 300, + 190, + 0 + ], + [ + 300, + 200, + 0 + ], + [ + 300, + 210, + 0 + ], + [ + 300, + 220, + 0 + ], + [ + 300, + 230, + 0 + ], + [ + 300, + 240, + 0 + ], + [ + 300, + 250, + 0 + ], + [ + 300, + 260, + 0 + ], + [ + 300, + 270, + 0 + ], + [ + 300, + 280, + 0 + ], + [ + 300, + 290, + 0 + ], + [ + 300, + 300, + 0 + ], + [ + 300, + 310, + 0 + ], + [ + 310, + 160, + 0 + ], + [ + 310, + 170, + 0 + ], + [ + 310, + 180, + 0 + ], + [ + 310, + 190, + 0 + ], + [ + 310, + 200, + 0 + ], + [ + 310, + 210, + 0 + ], + [ + 310, + 220, + 0 + ], + [ + 310, + 230, + 0 + ], + [ + 310, + 240, + 0 + ], + [ + 310, + 250, + 0 + ], + [ + 310, + 260, + 0 + ], + [ + 310, + 270, + 0 + ], + [ + 310, + 280, + 0 + ], + [ + 310, + 290, + 0 + ], + [ + 310, + 300, + 0 + ], + [ + 310, + 310, + 0 + ] + ] + } + ] +} \ No newline at end of file diff --git a/misc/model.json b/misc/model.json index 7bd471e6..ce1551df 100644 --- a/misc/model.json +++ b/misc/model.json @@ -169,7 +169,7 @@ { "id": "reset 1", "type": "select", - "ro": true, + "ro": false, "pid": "System", "o": 56, "fun": 42 @@ -612,14 +612,14 @@ "dash": true }, { - "id": "watches", + "id": "patches", "type": "table", "ro": true, "n": [ { "id": "channel", "type": "number", - "pid": "watches", + "pid": "patches", "ro": true, "min": 1, "max": 512, @@ -629,7 +629,7 @@ { "id": "variable", "type": "text", - "pid": "watches", + "pid": "patches", "ro": true, "max": 32, "o": 111, @@ -638,7 +638,7 @@ { "id": "max", "type": "number", - "pid": "watches", + "pid": "patches", "ro": true, "o": 76, "fun": 61 @@ -646,7 +646,7 @@ { "id": "value", "type": "number", - "pid": "watches", + "pid": "patches", "ro": true, "max": 255, "o": 113, @@ -936,7 +936,8 @@ }, { "id": "LiveScripts", - "type": "usermod", + "type": "User", + "pid": "m", "ro": true, "max": 255, "n": [ @@ -945,8 +946,9 @@ "type": "select", "pid": "LiveScripts", "ro": false, - "o": 107, - "fun": 87 + "value": 255, + "o": 101, + "fun": 74 }, { "id": "fps1", @@ -954,7 +956,9 @@ "pid": "LiveScripts", "ro": true, "max": 10, - "o": 148 + "o": 102, + "fun": 75, + "value": "0 /s" }, { "id": "fps2", @@ -962,10 +966,84 @@ "pid": "LiveScripts", "ro": true, "max": 10, - "o": 149 + "o": 103, + "fun": 76, + "value": "0 /s" + }, + { + "id": "scripts", + "type": "table", + "pid": "LiveScripts", + "ro": true, + "n": [ + { + "id": "name", + "type": "text", + "pid": "scripts", + "ro": true, + "max": 32, + "o": 105, + "fun": 77, + "value": [] + }, + { + "id": "running", + "type": "checkbox", + "pid": "scripts", + "ro": true, + "o": 106, + "fun": 78, + "value": [] + }, + { + "id": "halted", + "type": "checkbox", + "pid": "scripts", + "ro": true, + "o": 107, + "fun": 79, + "value": [] + }, + { + "id": "exe", + "type": "checkbox", + "pid": "scripts", + "ro": true, + "o": 108, + "fun": 80, + "value": [] + }, + { + "id": "handle", + "type": "number", + "pid": "scripts", + "ro": true, + "o": 109, + "fun": 81, + "value": [] + }, + { + "id": "size", + "type": "text", + "pid": "scripts", + "ro": true, + "max": 32, + "o": 110, + "fun": 82, + "value": [] + }, + { + "id": "Kill", + "type": "button", + "pid": "scripts", + "ro": false, + "o": 111, + "fun": 83 + } + ], + "o": 104 } ], - "pid": "m", "o": 7310 }, { diff --git a/misc/testOutput.txt b/misc/testOutput.txt index e241accb..ec26fa5e 100644 --- a/misc/testOutput.txt +++ b/misc/testOutput.txt @@ -1,6 +1,6 @@ Reading model from /model.json... (deserializeConfigFromFS) File /model.json open to read, size 6847 bytes -Read model [{"id":"Preview","type":"appmod","ro":false,"o":1,"n":[{"id":"pview","type":"canvas","ro":false,"o":2,"loopFun":0,"interval":160}]},{"id":"Leds","type":"appmod","ro":false,"o":3,"n":[{"id":"on","type":"checkbox","ro":false,"o":4,"value":1,"dash":true},{"id":"brightness","type":"range","ro":false,"o":5,"value":10,"max":255,"log":true,"dash":true},{"id":"ledsTbl","type":"table","ro":false,"o":6,"n":[{"id":"pro","type":"select","ro":false,"o":13,"value":2,"dash":true},{"id":"ledsStart","type":"coord3D","ro":false,"o":14,"value":[{"x":0,"y":0,"z":0}],"max":127},{"id":"ledsEnd","type":"coord3D","ro":false,"o":15,"value":[{"x":32,"y":32,"z":0}],"max":127},{"id":"ledsSize","type":"coord3D","ro":true,"o":16,"max":127},{"id":"fxCount","type":"number","ro":true,"o":17,"max":255}]},{"id":"fx","type":"select","ro":false,"o":7,"value":13,"dash":true,"n":[{"id":"pal","type":"select","ro":false,"o":8,"value":4,"dash":true},{"id":"speed","type":"range","ro":false,"o":9,"min":1,"max":255,"value":128},{"id":"Offset X","type":"range","ro":false,"o":10,"max":255,"value":128},{"id":"Offset Y","type":"range","ro":false,"o":11,"max":255,"value":128},{"id":"Legs","type":"range","ro":false,"o":12,"min":1,"max":8,"value":4}]},{"id":"fixture","type":"select","ro":false,"o":18,"value":0},{"id":"fixSize","type":"coord3D","ro":true,"o":19,"max":127},{"id":"fixCount","type":"number","ro":true,"o":20,"max":255},{"id":"fps","type":"number","ro":false,"o":21,"value":60,"min":1,"max":999},{"id":"realFps","type":"text","ro":true,"o":22,"max":10}]},{"id":"Fixture Generator","type":"usermod","ro":false,"o":23,"n":[{"id":"fixtureGen","type":"select","ro":false,"o":24,"value":0,"n":[{"id":"ledCount","type":"number","ro":false,"o":25,"min":1,"max":4096,"value":64}]},{"id":"pinList","type":"text","ro":false,"o":26,"value":"16","max":32},{"id":"generate","type":"button","ro":false,"o":27}]},{"id":"Files","type":"sysmod","ro":false,"o":28,"n":[{"id":"files","type":"table","ro":false,"o":29,"n":[{"id":"name","type":"text","ro":true,"o":30,"max":32},{"id":"size","type":"number","ro":true,"o":31},{"id":"flLink","type":"url","ro":true,"o":32}]},{"id":"size","type":"text","ro":true,"o":33,"max":32}]},{"id":"System","type":"sysmod","ro":false,"o":34,"n":[{"id":"name","type":"text","ro":false,"o":35,"value":"StarBase16MB","max":32},{"id":"uptime","type":"text","ro":true,"o":36,"max":16},{"id":"loops","type":"text","ro":true,"o":37,"max":16},{"id":"chip","type":"text","ro":true,"o":38,"max":16},{"id":"heap","type":"text","ro":true,"o":39,"max":32},{"id":"stack","type":"text","ro":true,"o":40,"max":16},{"id":"reboot","type":"button","ro":false,"o":41},{"id":"reset 0","type":"select","ro":true,"o":42},{"id":"reset 1","type":"select","ro":true,"o":43},{"id":"restartReason","type":"select","ro":true,"o":44},{"id":"version","type":"text","ro":true,"o":45,"max":16}],"view":"vAll"},{"id":"Pins","type":"sysmod","ro":false,"o":46,"n":[{"id":"pins","type":"table","ro":true,"o":47,"n":[{"id":"pin","type":"number","ro":true,"o":48,"max":50},{"id":"owner","type":"text","ro":true,"o":49,"max":32},{"id":"details","type":"text","ro":true,"o":50,"max":256}]},{"id":"board","type":"canvas","ro":true,"o":51,"loopFun":1,"interval":1000},{"id":"pin19","type":"checkbox","ro":false,"o":52,"value":1}]},{"id":"Print","type":"sysmod","ro":false,"o":53,"n":[{"id":"output","type":"select","ro":false,"o":54,"value":1},{"id":"log","type":"textarea","ro":true,"o":55}]},{"id":"Web","type":"sysmod","ro":false,"o":56,"n":[{"id":"clients","type":"table","ro":true,"o":57,"n":[{"id":"nr","type":"number","ro":true,"o":58,"max":999},{"id":"ip","type":"text","ro":true,"o":59,"max":16},{"id":"full","type":"checkbox","ro":true,"o":60},{"id":"status","type":"select","ro":true,"o":61},{"id":"length","type":"number","ro":true,"o":62,"max":64}]},{"id":"wsCounter","type":"text","ro":true,"o":63,"max":16},{"id":"queueLength","type":"number","ro":true,"o":64,"max":64}]},{"id":"Network","type":"sysmod","ro":false,"o":65,"n":[{"id":"ssid","type":"text","ro":false,"o":66,"value":"ewtr","max":32},{"id":"password","type":"password","ro":false,"o":67,"value":"zonledmod"},{"id":"connect","type":"button","ro":false,"o":68},{"id":"nwstatus","type":"text","ro":true,"o":69,"max":32},{"id":"rssi","type":"text","ro":true,"o":70,"max":32}]},{"id":"DDP","type":"usermod","ro":false,"o":71,"n":[{"id":"ddpInst","type":"select","ro":false,"o":72}]},{"id":"ArtNet","type":"usermod","ro":false,"o":73,"n":[{"id":"artInst","type":"select","ro":false,"o":74}]},{"id":"E131","type":"usermod","ro":false,"o":75,"n":[{"id":"universe","type":"number","ro":false,"o":76,"value":1,"max":7},{"id":"channel","type":"number","ro":false,"o":77,"value":1,"min":1,"max":512,"dash":true},{"id":"watches","type":"table","ro":true,"o":78,"n":[{"id":"channel","type":"number","ro":true,"o":79,"min":1,"max":512},{"id":"variable","type":"text","ro":true,"o":80,"max":32},{"id":"max","type":"number","ro":true,"o":81},{"id":"value","type":"number","ro":true,"o":82,"max":255}]}]},{"id":"Model","type":"sysmod","ro":false,"o":83,"n":[{"id":"mSize","type":"text","ro":true,"o":84,"max":32},{"id":"saveModel","type":"button","ro":false,"o":85},{"id":"showObsolete","type":"checkbox","ro":false,"o":86,"value":0},{"id":"deleteObsolete","type":"button","ro":false,"o":87}]},{"id":"UI","type":"sysmod","ro":false,"o":88,"n":[{"id":"loops","type":"table","ro":true,"o":89,"n":[{"id":"variable","type":"text","ro":true,"o":90,"max":32},{"id":"#loops","type":"number","ro":true,"o":91,"max":999}]}]},{"id":"Instances","type":"sysmod","ro":false,"o":92,"n":[{"id":"instances","type":"table","ro":true,"o":93,"n":[{"id":"name","type":"text","ro":true,"o":94,"max":32},{"id":"link","type":"url","ro":true,"o":95},{"id":"IP","type":"text","ro":true,"o":96,"max":16},{"id":"type","type":"text","ro":true,"o":97,"max":16},{"id":"version","type":"number","ro":true,"o":98,"max":-1},{"id":"uptime","type":"number","ro":true,"o":99,"max":-1},{"id":"inson","type":"checkbox","ro":false,"o":101},{"id":"insbri","type":"range","ro":false,"o":102,"max":255,"log":true},{"id":"inspro","type":"select","ro":false,"o":103},{"id":"insfx","type":"select","ro":false,"o":104},{"id":"insdch","type":"number","ro":false,"o":106,"min":1,"max":512},{"id":"inssma","type":"select","ro":false,"o":107},{"id":"inspal","type":"select","ro":false,"o":105}]},{"id":"sma","type":"select","ro":false,"o":100,"value":0,"dash":true}]},{"id":"Modules","type":"sysmod","ro":false,"o":108,"n":[{"id":"Modules","type":"table","ro":true,"o":109,"n":[{"id":"name","type":"text","ro":true,"o":110,"max":32},{"id":"success","type":"checkbox","ro":true,"o":111},{"id":"enabled","type":"checkbox","ro":false,"o":112,"value":[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true]}]}]}] +Read model [{"id":"Preview","type":"appmod","ro":false,"o":1,"n":[{"id":"pview","type":"canvas","ro":false,"o":2,"loopFun":0,"interval":160}]},{"id":"Leds","type":"appmod","ro":false,"o":3,"n":[{"id":"on","type":"checkbox","ro":false,"o":4,"value":1,"dash":true},{"id":"brightness","type":"range","ro":false,"o":5,"value":10,"max":255,"log":true,"dash":true},{"id":"ledsTbl","type":"table","ro":false,"o":6,"n":[{"id":"pro","type":"select","ro":false,"o":13,"value":2,"dash":true},{"id":"ledsStart","type":"coord3D","ro":false,"o":14,"value":[{"x":0,"y":0,"z":0}],"max":127},{"id":"ledsEnd","type":"coord3D","ro":false,"o":15,"value":[{"x":32,"y":32,"z":0}],"max":127},{"id":"ledsSize","type":"coord3D","ro":true,"o":16,"max":127},{"id":"fxCount","type":"number","ro":true,"o":17,"max":255}]},{"id":"fx","type":"select","ro":false,"o":7,"value":13,"dash":true,"n":[{"id":"pal","type":"select","ro":false,"o":8,"value":4,"dash":true},{"id":"speed","type":"range","ro":false,"o":9,"min":1,"max":255,"value":128},{"id":"Offset X","type":"range","ro":false,"o":10,"max":255,"value":128},{"id":"Offset Y","type":"range","ro":false,"o":11,"max":255,"value":128},{"id":"Legs","type":"range","ro":false,"o":12,"min":1,"max":8,"value":4}]},{"id":"fixture","type":"select","ro":false,"o":18,"value":0},{"id":"fixSize","type":"coord3D","ro":true,"o":19,"max":127},{"id":"fixCount","type":"number","ro":true,"o":20,"max":255},{"id":"fps","type":"number","ro":false,"o":21,"value":60,"min":1,"max":999},{"id":"realFps","type":"text","ro":true,"o":22,"max":10}]},{"id":"Fixture Generator","type":"usermod","ro":false,"o":23,"n":[{"id":"fixtureGen","type":"select","ro":false,"o":24,"value":0,"n":[{"id":"ledCount","type":"number","ro":false,"o":25,"min":1,"max":4096,"value":64}]},{"id":"pinList","type":"text","ro":false,"o":26,"value":"16","max":32},{"id":"generate","type":"button","ro":false,"o":27}]},{"id":"Files","type":"sysmod","ro":false,"o":28,"n":[{"id":"files","type":"table","ro":false,"o":29,"n":[{"id":"name","type":"text","ro":true,"o":30,"max":32},{"id":"size","type":"number","ro":true,"o":31},{"id":"flLink","type":"url","ro":true,"o":32}]},{"id":"size","type":"text","ro":true,"o":33,"max":32}]},{"id":"System","type":"sysmod","ro":false,"o":34,"n":[{"id":"name","type":"text","ro":false,"o":35,"value":"StarBase16MB","max":32},{"id":"uptime","type":"text","ro":true,"o":36,"max":16},{"id":"loops","type":"text","ro":true,"o":37,"max":16},{"id":"chip","type":"text","ro":true,"o":38,"max":16},{"id":"heap","type":"text","ro":true,"o":39,"max":32},{"id":"stack","type":"text","ro":true,"o":40,"max":16},{"id":"reboot","type":"button","ro":false,"o":41},{"id":"reset 0","type":"select","ro":true,"o":42},{"id":"reset 1","type":"select","ro":true,"o":43},{"id":"restartReason","type":"select","ro":true,"o":44},{"id":"version","type":"text","ro":true,"o":45,"max":16}],"view":"vAll"},{"id":"Pins","type":"sysmod","ro":false,"o":46,"n":[{"id":"pins","type":"table","ro":true,"o":47,"n":[{"id":"pin","type":"number","ro":true,"o":48,"max":50},{"id":"owner","type":"text","ro":true,"o":49,"max":32},{"id":"details","type":"text","ro":true,"o":50,"max":256}]},{"id":"board","type":"canvas","ro":true,"o":51,"loopFun":1,"interval":1000},{"id":"pin19","type":"checkbox","ro":false,"o":52,"value":1}]},{"id":"Print","type":"sysmod","ro":false,"o":53,"n":[{"id":"output","type":"select","ro":false,"o":54,"value":1},{"id":"log","type":"textarea","ro":true,"o":55}]},{"id":"Web","type":"sysmod","ro":false,"o":56,"n":[{"id":"clients","type":"table","ro":true,"o":57,"n":[{"id":"nr","type":"number","ro":true,"o":58,"max":999},{"id":"ip","type":"text","ro":true,"o":59,"max":16},{"id":"full","type":"checkbox","ro":true,"o":60},{"id":"status","type":"select","ro":true,"o":61},{"id":"length","type":"number","ro":true,"o":62,"max":64}]},{"id":"wsCounter","type":"text","ro":true,"o":63,"max":16},{"id":"queueLength","type":"number","ro":true,"o":64,"max":64}]},{"id":"Network","type":"sysmod","ro":false,"o":65,"n":[{"id":"ssid","type":"text","ro":false,"o":66,"value":"ewtr","max":32},{"id":"password","type":"password","ro":false,"o":67,"value":"zonledmod"},{"id":"connect","type":"button","ro":false,"o":68},{"id":"nwstatus","type":"text","ro":true,"o":69,"max":32},{"id":"rssi","type":"text","ro":true,"o":70,"max":32}]},{"id":"DDP","type":"usermod","ro":false,"o":71,"n":[{"id":"ddpInst","type":"select","ro":false,"o":72}]},{"id":"ArtNet","type":"usermod","ro":false,"o":73,"n":[{"id":"artInst","type":"select","ro":false,"o":74}]},{"id":"E131","type":"usermod","ro":false,"o":75,"n":[{"id":"universe","type":"number","ro":false,"o":76,"value":1,"max":7},{"id":"channel","type":"number","ro":false,"o":77,"value":1,"min":1,"max":512,"dash":true},{"id":"patches","type":"table","ro":true,"o":78,"n":[{"id":"channel","type":"number","ro":true,"o":79,"min":1,"max":512},{"id":"variable","type":"text","ro":true,"o":80,"max":32},{"id":"max","type":"number","ro":true,"o":81},{"id":"value","type":"number","ro":true,"o":82,"max":255}]}]},{"id":"Model","type":"sysmod","ro":false,"o":83,"n":[{"id":"mSize","type":"text","ro":true,"o":84,"max":32},{"id":"saveModel","type":"button","ro":false,"o":85},{"id":"showObsolete","type":"checkbox","ro":false,"o":86,"value":0},{"id":"deleteObsolete","type":"button","ro":false,"o":87}]},{"id":"UI","type":"sysmod","ro":false,"o":88,"n":[{"id":"loops","type":"table","ro":true,"o":89,"n":[{"id":"variable","type":"text","ro":true,"o":90,"max":32},{"id":"#loops","type":"number","ro":true,"o":91,"max":999}]}]},{"id":"Instances","type":"sysmod","ro":false,"o":92,"n":[{"id":"instances","type":"table","ro":true,"o":93,"n":[{"id":"name","type":"text","ro":true,"o":94,"max":32},{"id":"link","type":"url","ro":true,"o":95},{"id":"IP","type":"text","ro":true,"o":96,"max":16},{"id":"type","type":"text","ro":true,"o":97,"max":16},{"id":"version","type":"number","ro":true,"o":98,"max":-1},{"id":"uptime","type":"number","ro":true,"o":99,"max":-1},{"id":"inson","type":"checkbox","ro":false,"o":101},{"id":"insbri","type":"range","ro":false,"o":102,"max":255,"log":true},{"id":"inspro","type":"select","ro":false,"o":103},{"id":"insfx","type":"select","ro":false,"o":104},{"id":"insdch","type":"number","ro":false,"o":106,"min":1,"max":512},{"id":"inssma","type":"select","ro":false,"o":107},{"id":"inspal","type":"select","ro":false,"o":105}]},{"id":"sma","type":"select","ro":false,"o":100,"value":0,"dash":true}]},{"id":"Modules","type":"sysmod","ro":false,"o":108,"n":[{"id":"Modules","type":"table","ro":true,"o":109,"n":[{"id":"name","type":"text","ro":true,"o":110,"max":32},{"id":"success","type":"checkbox","ro":true,"o":111},{"id":"enabled","type":"checkbox","ro":false,"o":112,"value":[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true]}]}]}] sendDataWs no ws initVarAndUpdate onChange init bri v:10 Set Brightness to 10 -> b:10 r:1 @@ -146,7 +146,7 @@ instances updateNode 132 αWS_EVT_DATA json {"artInst":{"label":"Instance","comment":"Instance to send data","options":[[0,"no sync"],[132,"192.168.8.132 StarBaseRS"]]}} αWS_EVT_DATA info 184 / 3072 (5%) (1 0 4) αWS event data client: 2 ...126 q:0 l:20 s:1 (#:1) -αWS_EVT_DATA json {"universe":{"label":"DMX Universe"},"channel":{"label":"DMX Channel","comment":"First channel"},"channel":{"label":"Channel"},"variable":{"label":"Variable"},"max":{"label":"Max"},"value":{"label":"Value"},"watches":{"label":"Vars to watch","comment":"List of instances","value":[[1,"brightness",255,0],[2,"fx",20,0],[3,"pal",8,0]]}} +αWS_EVT_DATA json {"universe":{"label":"DMX Universe"},"channel":{"label":"DMX Channel","comment":"First channel"},"channel":{"label":"Channel"},"variable":{"label":"Variable"},"max":{"label":"Max"},"value":{"label":"Value"},"patches":{"label":"Vars to watch","comment":"List of instances","value":[[1,"brightness",255,0],[2,"fx",20,0],[3,"pal",8,0]]}} αWS_EVT_DATA info 523 / 3072 (17%) (7 0 4) SysModWeb clientsChanged αWS event data client: 2 ...126 q:0 l:23 s:1 (#:1) diff --git a/src/User/UserModE131.h b/src/User/UserModE131.h index 75baca1d..6046e338 100644 --- a/src/User/UserModE131.h +++ b/src/User/UserModE131.h @@ -36,14 +36,14 @@ class UserModE131:public SysModule { variable.setComment("First channel"); return true; case onChange: - for (JsonObject childVar: Variable(mdl->findVar("E131", "watches")).children()) + for (JsonObject childVar: Variable(mdl->findVar("E131", "patches")).children()) Variable(childVar).triggerEvent(onSetValue); //set the value (WIP) return true; default: return false; }}); currentVar.var["dash"] = true; - Variable tableVar = ui->initTable(parentVar, "watches", nullptr, true, [](EventArguments) { switch (eventType) { + Variable tableVar = ui->initTable(parentVar, "patches", nullptr, true, [](EventArguments) { switch (eventType) { case onUI: variable.setComment("Variables to watch"); return true; diff --git a/src/html_newui.h b/src/html_newui.h index fc2499aa..d8b67ca8 100644 --- a/src/html_newui.h +++ b/src/html_newui.h @@ -7,544 +7,582 @@ */ // Autogenerated from data/newui/index.htm, do not edit!! -const uint16_t PAGE_newui_L = 8598; +const uint16_t PAGE_newui_L = 9214; const uint8_t PAGE_newui[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x3d, 0xc9, 0x76, 0xe3, 0x46, - 0x92, 0x77, 0x7d, 0x45, 0x16, 0xec, 0x96, 0x08, 0x13, 0x24, 0xc1, 0x55, 0x12, 0x29, 0xb0, 0x9a, - 0xda, 0xaa, 0xa4, 0x52, 0x49, 0xb2, 0x28, 0x95, 0x6a, 0x99, 0x7a, 0x16, 0x48, 0x24, 0x49, 0x94, - 0x40, 0x00, 0x06, 0x40, 0x51, 0x14, 0x8d, 0x3f, 0x98, 0xd3, 0xbc, 0x39, 0xcc, 0xad, 0xcf, 0xf3, - 0xe6, 0x1f, 0xe6, 0x30, 0x9f, 0x32, 0x5f, 0xd0, 0x9f, 0x30, 0x11, 0x99, 0x09, 0x10, 0x20, 0xa1, - 0xa5, 0xdc, 0x7e, 0xf3, 0xda, 0x76, 0x5b, 0x04, 0x22, 0x23, 0x33, 0x23, 0x23, 0x22, 0x63, 0xc9, - 0x05, 0x4d, 0x76, 0x5e, 0xed, 0x9f, 0xed, 0x5d, 0x7e, 0x3a, 0x3f, 0x20, 0xa3, 0x60, 0x6c, 0xb5, - 0xc9, 0x4e, 0xf4, 0x43, 0x75, 0x03, 0x7e, 0xc6, 0x34, 0xd0, 0x49, 0x7f, 0xa4, 0x7b, 0x3e, 0x0d, - 0x34, 0x69, 0x12, 0x0c, 0x0a, 0x5b, 0x52, 0x0c, 0x76, 0xec, 0x80, 0xda, 0x00, 0x9e, 0x51, 0x5f, - 0x22, 0x6b, 0xb6, 0x3e, 0xa6, 0x9a, 0xa4, 0xbb, 0xae, 0x45, 0x0b, 0x63, 0xa7, 0x67, 0xc2, 0xcf, - 0x94, 0xf6, 0x0a, 0x00, 0x28, 0xf4, 0x75, 0x57, 0xef, 0x59, 0x34, 0xae, 0xb9, 0x16, 0x57, 0x9d, - 0x9a, 0x46, 0x30, 0xd2, 0x0c, 0x7a, 0x67, 0xf6, 0x01, 0x1d, 0x5f, 0x14, 0xd3, 0x36, 0x03, 0x53, - 0xb7, 0x0a, 0x7e, 0x5f, 0xb7, 0xa8, 0x56, 0x96, 0x08, 0x6f, 0xf8, 0xce, 0xa4, 0x53, 0xd7, 0xf1, - 0x82, 0x45, 0x23, 0xa2, 0xc3, 0x49, 0x30, 0x72, 0x3c, 0x69, 0x41, 0xcd, 0x7b, 0xc7, 0xb1, 0xdf, - 0x3b, 0xc6, 0xc4, 0xa2, 0x3e, 0xd1, 0x6d, 0x83, 0x98, 0x81, 0xcf, 0x0a, 0x3d, 0xb3, 0x37, 0x09, - 0x1c, 0xcf, 0xc7, 0x06, 0x2c, 0xd3, 0xbe, 0x25, 0x1e, 0xb5, 0x34, 0xc9, 0x84, 0x22, 0x20, 0x7e, - 0xe4, 0xd1, 0x81, 0x26, 0x19, 0x7a, 0xa0, 0x37, 0xcd, 0xb1, 0x3e, 0xa4, 0x25, 0xd7, 0x1e, 0xb6, - 0x7a, 0xba, 0x4f, 0x1b, 0x35, 0xc5, 0xfc, 0xb0, 0x7b, 0x76, 0x31, 0x55, 0xdf, 0xbd, 0x19, 0x3a, - 0x1d, 0xf8, 0xe7, 0xb4, 0x7b, 0x35, 0x3a, 0xb8, 0x1a, 0xc2, 0xd3, 0x2e, 0xbe, 0x76, 0x7e, 0xde, - 0xeb, 0x7c, 0xc2, 0xdf, 0xc1, 0x56, 0x69, 0x7b, 0xc4, 0x20, 0x1f, 0x4f, 0xbb, 0x17, 0xea, 0x51, - 0xc7, 0xf3, 0x6b, 0xfd, 0xc6, 0xcf, 0xf0, 0x7e, 0x70, 0x61, 0x5d, 0x1f, 0x58, 0xe3, 0xcb, 0x2b, - 0xb5, 0xf3, 0x0e, 0xeb, 0x75, 0xe0, 0xcf, 0x27, 0xc3, 0x85, 0xaa, 0x9d, 0xa8, 0x95, 0x37, 0x0c, - 0x0e, 0xff, 0x34, 0xf0, 0xfd, 0xbd, 0x80, 0x1f, 0x74, 0x3a, 0xef, 0x3a, 0x7b, 0x49, 0xbc, 0x83, - 0x77, 0x9d, 0xfd, 0xd4, 0x3b, 0xaf, 0xa5, 0x7e, 0xf8, 0xf8, 0x76, 0x86, 0xb0, 0xca, 0x81, 0x75, - 0xf0, 0xf3, 0x87, 0x9f, 0x6b, 0x07, 0x9f, 0x3e, 0x74, 0x2f, 0xaf, 0x82, 0xde, 0xd5, 0x45, 0x67, - 0x7b, 0xeb, 0xfe, 0xdd, 0xa5, 0xf5, 0x66, 0xf7, 0xea, 0xe1, 0xe0, 0xf3, 0xbb, 0xc3, 0xab, 0xb7, - 0xbb, 0x56, 0xff, 0x83, 0x79, 0xb8, 0x6b, 0x74, 0xf7, 0xac, 0x63, 0xbd, 0x7b, 0x7b, 0x5c, 0xfd, - 0x48, 0xbd, 0xbd, 0xe0, 0xf2, 0xee, 0xe3, 0xc5, 0x87, 0xd9, 0x71, 0xad, 0xb3, 0xe5, 0x9c, 0x04, - 0xf7, 0x65, 0x7b, 0xd6, 0x09, 0x7a, 0xb7, 0xce, 0x47, 0xef, 0x7a, 0xcf, 0x72, 0x0c, 0xf5, 0xd7, - 0xc3, 0xa3, 0x8f, 0xfa, 0xe8, 0xe2, 0x4d, 0xef, 0xfa, 0xcd, 0x29, 0xed, 0x9e, 0xd6, 0xd5, 0xba, - 0x57, 0x3f, 0x3f, 0xaf, 0x1d, 0xed, 0x6f, 0x6e, 0x97, 0x1f, 0xea, 0xf5, 0xe9, 0x83, 0xb1, 0x39, - 0xaa, 0xee, 0xed, 0x56, 0xf6, 0x66, 0xa5, 0xdb, 0x7e, 0xe5, 0xee, 0x72, 0x4f, 0xdd, 0x7f, 0x9b, - 0xef, 0xee, 0x9e, 0x59, 0xbd, 0xaa, 0x71, 0xdc, 0xb8, 0xd6, 0xbb, 0x83, 0x87, 0xfb, 0x73, 0xa7, - 0x6e, 0x35, 0xf6, 0x6a, 0xfe, 0xc7, 0x29, 0x1d, 0x3e, 0x9c, 0x9f, 0x1d, 0xf4, 0xf7, 0xc7, 0xaa, - 0xa9, 0x7e, 0x30, 0x47, 0xf7, 0x0f, 0x93, 0x8f, 0x57, 0xfd, 0x7c, 0xb9, 0x63, 0x3f, 0x4c, 0xdf, - 0x3b, 0x67, 0xa5, 0xad, 0xab, 0xad, 0xe1, 0xf9, 0xd1, 0xf8, 0x5d, 0xc7, 0x7f, 0xa8, 0x7d, 0x0b, - 0x36, 0xaf, 0xdf, 0xdf, 0x7b, 0xdb, 0x57, 0xe7, 0xa7, 0x0f, 0xd6, 0xb0, 0xf4, 0xfe, 0xda, 0x29, - 0xdf, 0x19, 0xfb, 0x5d, 0xef, 0xe7, 0xce, 0xc4, 0x3b, 0x1e, 0x1d, 0xef, 0xee, 0x6e, 0xce, 0x06, - 0x0f, 0xaa, 0x77, 0x32, 0xa8, 0xd6, 0x8c, 0x8f, 0xfe, 0xe5, 0xf9, 0xbb, 0x6f, 0x9f, 0xc6, 0x9f, - 0x37, 0xdf, 0x75, 0x6a, 0x9b, 0xa3, 0xee, 0x6c, 0xeb, 0x24, 0xdf, 0x1b, 0x7e, 0xdc, 0xae, 0x74, - 0xbb, 0x6f, 0x2e, 0x36, 0xdd, 0xde, 0xd5, 0xd8, 0xec, 0x1c, 0xdf, 0xfa, 0x1f, 0x8e, 0xfb, 0xef, - 0xcf, 0xde, 0xec, 0xdf, 0x8e, 0xbe, 0x9d, 0xdb, 0xb7, 0x93, 0x4e, 0x7d, 0x72, 0x7a, 0xb8, 0x3f, - 0xc8, 0x57, 0x8e, 0xf2, 0xf7, 0x9f, 0xbd, 0xcb, 0xe9, 0xaf, 0xbf, 0x5e, 0x0c, 0xab, 0xc7, 0xf9, - 0x83, 0xea, 0xc1, 0x60, 0xef, 0xfc, 0xfd, 0xd1, 0xd4, 0x35, 0x2f, 0x3f, 0xe7, 0x2f, 0xa7, 0xd7, - 0xa3, 0x8f, 0xfd, 0xde, 0x68, 0xac, 0x8f, 0x1f, 0x3e, 0xbd, 0xeb, 0x4d, 0x3f, 0xef, 0xff, 0x6a, - 0xbc, 0x69, 0x54, 0x36, 0x3b, 0x9d, 0xad, 0x0f, 0xf7, 0x07, 0x9d, 0xee, 0xdd, 0xe5, 0xb0, 0x74, - 0xa9, 0x7a, 0xef, 0xfa, 0xef, 0x3e, 0x77, 0x7b, 0x23, 0x3d, 0xd8, 0x72, 0x4f, 0xed, 0x41, 0xe7, - 0xbc, 0x5c, 0x2a, 0x4f, 0x7b, 0x9f, 0xf3, 0xb3, 0x7c, 0x63, 0xb7, 0xb1, 0xf9, 0xcd, 0x7e, 0xd8, - 0x1c, 0xed, 0xa9, 0xb6, 0x75, 0x54, 0xdb, 0xbe, 0xb3, 0x81, 0x5d, 0x9f, 0x82, 0xb3, 0xee, 0xe7, - 0xfc, 0x45, 0xc3, 0x53, 0xc7, 0x33, 0xb5, 0xe1, 0x1e, 0x0c, 0x4f, 0xbc, 0xd2, 0xe4, 0xa2, 0x17, - 0x6c, 0xbb, 0x7b, 0x5b, 0xc3, 0x8f, 0xbb, 0x87, 0x07, 0x33, 0xd5, 0x55, 0xf7, 0xcf, 0x3e, 0x97, - 0xfd, 0x8b, 0xeb, 0xdb, 0x59, 0x67, 0xd7, 0xf4, 0xbb, 0x6f, 0xaa, 0x9d, 0xad, 0xe3, 0xcd, 0xe3, - 0x43, 0xf7, 0xa1, 0x7f, 0xe2, 0x5d, 0xdf, 0xbf, 0xfd, 0xa6, 0xab, 0xfa, 0x0c, 0xa6, 0x49, 0xd7, - 0x7b, 0xeb, 0x58, 0xc3, 0x7d, 0x7b, 0x7a, 0xb9, 0x99, 0xbf, 0x1e, 0xcc, 0x26, 0xef, 0xaf, 0x3f, - 0x7f, 0x2e, 0xdd, 0xf7, 0xb7, 0xeb, 0xfa, 0xb0, 0xf6, 0x7e, 0xef, 0xf2, 0xf3, 0x55, 0xfe, 0xa2, - 0x74, 0x56, 0xdd, 0x33, 0x87, 0xee, 0xcf, 0x0f, 0xd7, 0x47, 0x23, 0xaf, 0x72, 0x78, 0xf1, 0xee, - 0xe4, 0xad, 0x79, 0x7c, 0x77, 0xfa, 0xce, 0x3a, 0x39, 0xde, 0xbd, 0x18, 0xd3, 0x5a, 0x63, 0xf4, - 0x79, 0xeb, 0x53, 0xb5, 0xba, 0x45, 0xcd, 0x6f, 0xb7, 0xe5, 0xeb, 0xfa, 0xed, 0xc3, 0x5b, 0xb7, - 0xb7, 0x15, 0xdc, 0xbe, 0xe9, 0x4c, 0xf6, 0x3e, 0x4c, 0x3f, 0x9e, 0xd3, 0x9a, 0x3b, 0xdc, 0xeb, - 0xf6, 0xef, 0xbb, 0x1d, 0x6b, 0x4a, 0x0f, 0xcf, 0x1b, 0xf9, 0xbd, 0x81, 0xf7, 0xa1, 0x74, 0x56, - 0xbf, 0x7e, 0xfb, 0xae, 0x5a, 0x7b, 0x28, 0xd5, 0x55, 0xfd, 0xa8, 0x3f, 0xfa, 0xf9, 0xed, 0x6e, - 0x9d, 0xab, 0xe6, 0xf1, 0xc5, 0x55, 0xfd, 0xc0, 0xbb, 0x3d, 0x1e, 0x0e, 0x87, 0x9a, 0x26, 0xb5, - 0xd7, 0xc8, 0x8e, 0xdf, 0xf7, 0x4c, 0x37, 0x68, 0x97, 0x4a, 0xe4, 0xaf, 0x16, 0xcc, 0x75, 0xdb, - 0xa7, 0x84, 0x90, 0x37, 0xa7, 0x57, 0xe4, 0xcd, 0xc1, 0xe9, 0xc1, 0x45, 0xe7, 0x84, 0x9c, 0x5f, - 0xed, 0x9e, 0x1c, 0xed, 0x11, 0xf8, 0xef, 0xe0, 0xb4, 0x7b, 0x40, 0x3e, 0x50, 0xcf, 0x37, 0x1d, - 0x9b, 0x54, 0x15, 0x52, 0xd9, 0x26, 0xc7, 0x13, 0x9b, 0x92, 0x8a, 0xaa, 0x6e, 0xae, 0xa5, 0x1b, - 0x38, 0x74, 0x3c, 0x62, 0x03, 0xd6, 0x9b, 0xf3, 0x93, 0xc2, 0x5d, 0x95, 0x4c, 0x7c, 0x98, 0xba, - 0x0a, 0xcc, 0xf6, 0xf1, 0x98, 0x7a, 0x7d, 0x30, 0x22, 0x44, 0xa0, 0xfa, 0x64, 0x3c, 0xf1, 0x03, - 0xd2, 0xa3, 0xc4, 0x9d, 0x78, 0x60, 0xce, 0x7c, 0x6a, 0x14, 0xc9, 0x1e, 0x18, 0x05, 0xbd, 0x1f, - 0x90, 0x31, 0x18, 0x8c, 0x31, 0x37, 0x18, 0x7f, 0x35, 0xfb, 0x96, 0x33, 0x31, 0x8a, 0xd0, 0xc2, - 0x5a, 0xdf, 0xd2, 0x7d, 0x9f, 0x21, 0x79, 0x8e, 0x65, 0x51, 0x6f, 0x3e, 0xf5, 0x35, 0x7b, 0x62, - 0x59, 0x2d, 0x7f, 0xe6, 0x1f, 0xd9, 0x03, 0x47, 0x9b, 0x87, 0x2d, 0x51, 0x8d, 0xc3, 0x83, 0x11, - 0x05, 0x83, 0xc4, 0x1e, 0xc7, 0xba, 0x69, 0x9f, 0xea, 0x77, 0xfc, 0xc5, 0xb1, 0x4f, 0x1c, 0xdd, - 0xc8, 0xc9, 0x73, 0xc3, 0xe9, 0x4f, 0xc6, 0x60, 0xa3, 0x8a, 0x81, 0x19, 0x80, 0x69, 0x03, 0xcb, - 0x78, 0x0a, 0x26, 0x2c, 0x27, 0xe7, 0xa5, 0xbf, 0xff, 0xed, 0xdf, 0xfe, 0x8b, 0xf4, 0x66, 0x24, - 0x69, 0xbb, 0xfe, 0xfe, 0xb7, 0x7f, 0xfd, 0x77, 0x49, 0x99, 0x9a, 0xb6, 0xe1, 0x4c, 0x8b, 0x96, - 0xd3, 0xd7, 0x03, 0xe0, 0x47, 0x11, 0x0d, 0x55, 0xd1, 0xb4, 0xfb, 0xd6, 0xc4, 0xa0, 0x7e, 0x4e, - 0x2a, 0x57, 0x36, 0x8b, 0x2a, 0xfc, 0x5b, 0x96, 0xe4, 0xd7, 0xc1, 0xc8, 0xf4, 0x8b, 0x03, 0x1a, - 0xf4, 0x47, 0xd0, 0x04, 0xb5, 0x80, 0x37, 0x27, 0xe6, 0x1d, 0xed, 0x52, 0xef, 0x8e, 0x7a, 0x39, - 0xb9, 0xc9, 0x8a, 0xc7, 0xfa, 0x2d, 0xbd, 0xee, 0xe6, 0x64, 0x85, 0xbf, 0x45, 0xe4, 0xd3, 0x29, - 0x11, 0xdd, 0xf2, 0x02, 0x31, 0x14, 0x00, 0x5f, 0xe2, 0x53, 0x02, 0x58, 0xec, 0x7b, 0x54, 0x0f, - 0xe8, 0xdb, 0xcb, 0xf7, 0x27, 0x51, 0x2b, 0x1c, 0x3e, 0xa4, 0x01, 0xc3, 0x8d, 0xdb, 0x8e, 0x58, - 0x80, 0x6d, 0xf3, 0xe7, 0x5c, 0xb2, 0x53, 0xfc, 0xa5, 0x56, 0x1a, 0x39, 0xdd, 0xf8, 0xc4, 0xa7, - 0xde, 0xe1, 0xc4, 0xee, 0xd2, 0x60, 0xe2, 0xe6, 0xe4, 0x50, 0xf7, 0x67, 0x76, 0x9f, 0x3c, 0x3a, - 0xbe, 0xb9, 0x45, 0x03, 0x02, 0x4c, 0x9d, 0xea, 0x66, 0x90, 0x63, 0x7f, 0x39, 0x6e, 0x4e, 0x2a, - 0x8d, 0x4d, 0xbf, 0x5f, 0x62, 0xdd, 0x15, 0xbf, 0xf9, 0x60, 0xee, 0x65, 0x99, 0xfd, 0xe6, 0xe4, - 0x16, 0x2d, 0xfa, 0xe0, 0x52, 0x72, 0xb9, 0xc1, 0xc4, 0xee, 0x23, 0x7b, 0x73, 0x30, 0x54, 0x79, - 0xee, 0x41, 0x8f, 0x9e, 0x0d, 0x54, 0x07, 0xa3, 0xa2, 0xde, 0xf3, 0x73, 0xb4, 0xe8, 0xc8, 0x85, - 0xf8, 0x2d, 0x80, 0xb7, 0x50, 0x96, 0x5b, 0x03, 0xc7, 0xcb, 0x61, 0x9f, 0x01, 0x71, 0x06, 0x84, - 0xca, 0xa9, 0xb1, 0xe9, 0x86, 0xc1, 0xf9, 0x99, 0x0b, 0xe4, 0x16, 0x43, 0xd2, 0xe6, 0x42, 0x6d, - 0x9a, 0xf3, 0x30, 0x6c, 0x05, 0x45, 0xf1, 0x56, 0xec, 0x39, 0xba, 0x67, 0x68, 0x12, 0xf5, 0xdd, - 0x6a, 0x45, 0x52, 0x16, 0x70, 0xdb, 0x3b, 0x1b, 0x9c, 0x9b, 0xb6, 0xaf, 0xd5, 0xd4, 0x04, 0xd4, - 0x35, 0xed, 0xcb, 0x99, 0x0b, 0x12, 0xfb, 0xf2, 0x35, 0xee, 0x9f, 0x6a, 0x6a, 0x8b, 0xee, 0xac, - 0xd6, 0x6c, 0xd1, 0x7c, 0x5e, 0x5e, 0xad, 0xfa, 0x85, 0x7e, 0xd5, 0xd8, 0x58, 0x3c, 0x67, 0x62, - 0x1b, 0xb9, 0xea, 0x4f, 0xfc, 0x05, 0x3c, 0xa5, 0x33, 0xce, 0xc1, 0xb0, 0xd8, 0x38, 0x3c, 0xda, - 0xa7, 0xc0, 0xdb, 0x7d, 0xf0, 0x87, 0x30, 0x82, 0x48, 0x09, 0x21, 0x06, 0x38, 0x02, 0x27, 0xeb, - 0xdd, 0xe9, 0x56, 0x82, 0x65, 0xf2, 0xbc, 0x1f, 0xcf, 0x91, 0x98, 0x01, 0x43, 0x6a, 0x53, 0x0f, - 0x44, 0xc9, 0x5a, 0x00, 0x76, 0x29, 0x65, 0x5a, 0x7d, 0xb6, 0x1d, 0x3e, 0x9a, 0x2f, 0xaa, 0x52, - 0x56, 0x2a, 0x4a, 0x55, 0xa9, 0x7d, 0x6d, 0x99, 0x83, 0x1c, 0xfd, 0xa2, 0xa6, 0x08, 0x4e, 0x93, - 0xab, 0xa8, 0x9a, 0x86, 0x18, 0xbc, 0x72, 0xa0, 0x0d, 0x8f, 0x8c, 0x9c, 0x84, 0xa3, 0xe7, 0x8c, - 0x95, 0x64, 0x6c, 0x02, 0x44, 0x1a, 0x0b, 0x0b, 0x98, 0x15, 0xec, 0x24, 0x08, 0x5e, 0xe1, 0x5a, - 0x00, 0x5c, 0xa3, 0x5f, 0x82, 0x7c, 0x3d, 0xd5, 0x6b, 0xa5, 0xde, 0x58, 0x66, 0x54, 0xc6, 0xa8, - 0x5d, 0x8f, 0x62, 0x98, 0xb2, 0x8b, 0x5d, 0xe7, 0x02, 0x85, 0xca, 0x61, 0x48, 0x2d, 0x30, 0x54, - 0x42, 0x93, 0x73, 0x94, 0x71, 0x42, 0x55, 0xe5, 0x30, 0x9a, 0x87, 0x73, 0x24, 0x0f, 0x39, 0x3e, - 0xf5, 0x65, 0xae, 0x76, 0x2d, 0xce, 0x85, 0x9c, 0x34, 0x0a, 0x02, 0xd7, 0x6f, 0x4a, 0x9a, 0xb6, - 0x6c, 0x02, 0x5c, 0xcf, 0x09, 0x9c, 0xbe, 0x63, 0xbd, 0x96, 0xa6, 0xbe, 0x2f, 0x35, 0xe1, 0xaf, - 0x04, 0x26, 0xa4, 0x59, 0x2a, 0x49, 0xf9, 0x15, 0x6b, 0xe1, 0xf8, 0x01, 0x86, 0x49, 0x79, 0xa9, - 0x04, 0x58, 0x48, 0xb2, 0xef, 0x58, 0x14, 0xca, 0x87, 0x39, 0x89, 0x93, 0x40, 0x26, 0x9e, 0x25, - 0x01, 0xa5, 0x8a, 0xa0, 0x82, 0xcd, 0xd7, 0x6b, 0xda, 0xeb, 0x3a, 0xfd, 0x5b, 0x1a, 0xe4, 0x16, - 0x05, 0xc5, 0x9e, 0x69, 0xeb, 0xde, 0x0c, 0x75, 0x08, 0x82, 0x2e, 0xcf, 0xd3, 0x67, 0xbd, 0xc9, - 0x60, 0x40, 0x3d, 0x29, 0x46, 0x00, 0x2b, 0x4a, 0x7d, 0xb4, 0xc0, 0x1a, 0xd5, 0xda, 0x38, 0x30, - 0x5a, 0xc4, 0x80, 0x8a, 0x00, 0x57, 0x03, 0xdd, 0xee, 0x53, 0x98, 0x26, 0x1d, 0xac, 0xb7, 0xcb, - 0xea, 0x45, 0x12, 0xc3, 0xfe, 0xae, 0x4c, 0x3b, 0xd8, 0x62, 0x65, 0xa2, 0x0e, 0x13, 0x1b, 0x88, - 0x36, 0x88, 0x45, 0x4b, 0x33, 0x44, 0x4b, 0xd7, 0xd7, 0x53, 0xb3, 0x2e, 0xc5, 0x7e, 0x9c, 0xc9, - 0x69, 0xee, 0x8b, 0xf7, 0xa8, 0x5f, 0x66, 0xb2, 0xbd, 0xd9, 0x3c, 0xd0, 0x8e, 0xbb, 0x67, 0xa7, - 0x45, 0x17, 0x63, 0xdc, 0xa8, 0xfb, 0x10, 0xf8, 0x07, 0xa6, 0xc3, 0x91, 0xe7, 0x1c, 0x51, 0x89, - 0x38, 0x47, 0x3d, 0x0f, 0x34, 0x29, 0xe2, 0x1d, 0x5a, 0x11, 0xc2, 0x40, 0x92, 0xe2, 0x28, 0x51, - 0x5d, 0xa6, 0x71, 0xf8, 0xa7, 0x18, 0x00, 0xb3, 0xd6, 0xd7, 0xbf, 0x60, 0x50, 0x0c, 0x34, 0x4a, - 0x8a, 0x84, 0xa4, 0xf0, 0x27, 0xd0, 0x3b, 0x7c, 0xf8, 0xba, 0xb0, 0xe5, 0x1c, 0x5d, 0x8e, 0x86, - 0xfb, 0xaa, 0x1c, 0xcf, 0x70, 0x07, 0x2d, 0x4c, 0x86, 0xed, 0x74, 0x8a, 0xa6, 0x01, 0x3c, 0x82, - 0xbf, 0xeb, 0xeb, 0x39, 0xa8, 0xa1, 0x02, 0x4b, 0x5e, 0xa7, 0x64, 0x8c, 0xc1, 0x3c, 0x56, 0xe6, - 0xf5, 0x88, 0x6e, 0x81, 0x7d, 0x35, 0x66, 0x24, 0x9a, 0x9d, 0x40, 0x48, 0x10, 0x39, 0x86, 0x0c, - 0xcb, 0xc5, 0xd9, 0xc7, 0xe4, 0x52, 0x34, 0x7d, 0x2e, 0x9f, 0x40, 0x4e, 0xf7, 0x00, 0xa1, 0x3b, - 0x61, 0xda, 0x00, 0x7e, 0x18, 0xc8, 0xbe, 0x77, 0x69, 0x3f, 0xd5, 0x6e, 0xda, 0x92, 0x84, 0x61, - 0x42, 0x5b, 0xc0, 0xd5, 0xfa, 0x5c, 0x57, 0x52, 0x2d, 0x02, 0x5f, 0x59, 0x09, 0x0b, 0xde, 0x61, - 0x4e, 0x78, 0x33, 0xa6, 0x9f, 0x60, 0x34, 0x2e, 0xcd, 0x31, 0x75, 0x26, 0x41, 0x8e, 0x73, 0x5f, - 0x29, 0xd7, 0x61, 0x26, 0x2d, 0xf4, 0x16, 0xc4, 0x94, 0x6c, 0xdd, 0x71, 0xa9, 0x9d, 0xd9, 0x38, - 0x16, 0x60, 0x8b, 0x49, 0x64, 0x26, 0xc3, 0x4c, 0x6c, 0x21, 0x5d, 0x9c, 0xca, 0x1e, 0xfd, 0x75, - 0x42, 0xfd, 0xe0, 0x18, 0x5d, 0x07, 0x65, 0x33, 0xf7, 0xe5, 0xce, 0x19, 0x24, 0x83, 0xaa, 0x07, - 0x75, 0x5e, 0x65, 0x4c, 0x77, 0xa1, 0x82, 0x3e, 0xe4, 0x28, 0xf6, 0xd0, 0x1c, 0xc0, 0x2c, 0x10, - 0x76, 0x18, 0x88, 0xf3, 0x29, 0x98, 0x9f, 0x80, 0x75, 0xbf, 0xe0, 0x24, 0xef, 0xde, 0xf4, 0xcf, - 0x7a, 0xdf, 0x80, 0xdf, 0xf0, 0x2a, 0xa7, 0xbc, 0x11, 0x07, 0x17, 0x6f, 0xe9, 0xcc, 0xcf, 0x45, - 0x1a, 0xe5, 0x80, 0x9d, 0x0c, 0xbe, 0x2a, 0x36, 0xe8, 0x8b, 0xef, 0x5a, 0xe0, 0x23, 0xa5, 0xa2, - 0x04, 0x5c, 0xd5, 0x52, 0xd2, 0x1f, 0xc0, 0x80, 0x3e, 0xe8, 0x5e, 0xce, 0x86, 0x79, 0xa7, 0xd8, - 0x5f, 0xca, 0x5f, 0xd9, 0x44, 0xf4, 0xe5, 0xf9, 0x9d, 0xee, 0xe1, 0xb8, 0x2f, 0x9d, 0x3d, 0x8c, - 0x8a, 0x00, 0x92, 0x12, 0xac, 0xc3, 0x55, 0x45, 0x12, 0xc6, 0x14, 0x6c, 0x56, 0x00, 0x1a, 0xc9, - 0x5a, 0x8e, 0x82, 0x25, 0x40, 0x09, 0x43, 0xc1, 0xaf, 0x85, 0xe5, 0x64, 0xb3, 0x7f, 0x11, 0x62, - 0x31, 0x03, 0x15, 0x90, 0xab, 0xa3, 0xd3, 0xcb, 0xad, 0x5f, 0xde, 0x77, 0x3e, 0x6a, 0x95, 0x7a, - 0x5d, 0xc1, 0xb7, 0x72, 0x83, 0xbd, 0x36, 0xea, 0xf5, 0x6a, 0xbd, 0x15, 0x79, 0x0c, 0x82, 0x16, - 0x81, 0xc6, 0xee, 0x3a, 0x8e, 0xae, 0x20, 0x12, 0x39, 0xb0, 0x28, 0x3e, 0xee, 0xce, 0x18, 0x46, - 0x18, 0xd7, 0xe8, 0x1f, 0x64, 0x55, 0xe0, 0x51, 0x87, 0xa8, 0x93, 0xc2, 0x37, 0xfd, 0x13, 0x67, - 0x0a, 0xe9, 0x91, 0x8e, 0xa6, 0x21, 0xae, 0x48, 0x8b, 0x81, 0xb3, 0x80, 0xcb, 0xe0, 0x81, 0x12, - 0x35, 0x20, 0x7b, 0xdd, 0xd3, 0x5d, 0x21, 0x21, 0x89, 0x8b, 0x54, 0x7a, 0xa5, 0xe1, 0xdc, 0x66, - 0x71, 0x02, 0x6f, 0x43, 0x92, 0x84, 0xe0, 0xe1, 0x21, 0x9e, 0xe6, 0xe0, 0x9b, 0x9c, 0x1d, 0x50, - 0x3d, 0x6a, 0x0f, 0x83, 0x51, 0xcb, 0x01, 0x47, 0x04, 0x26, 0xd0, 0x79, 0x1d, 0xe4, 0x35, 0x08, - 0xbb, 0x20, 0x07, 0xef, 0x04, 0xc0, 0x69, 0xe8, 0xfb, 0xca, 0x75, 0xa3, 0xbe, 0x9b, 0xaf, 0x52, - 0x24, 0x2e, 0xd0, 0xe4, 0xf5, 0xf5, 0xec, 0x92, 0x42, 0x59, 0x96, 0xb1, 0x49, 0x89, 0x48, 0xf9, - 0x04, 0x7e, 0x53, 0x2a, 0x80, 0xd8, 0x12, 0x80, 0xdf, 0x7e, 0x93, 0x7e, 0x49, 0x43, 0x44, 0xad, - 0x66, 0x9a, 0x9e, 0x96, 0x60, 0x4a, 0x90, 0xe4, 0x5a, 0xac, 0x97, 0x82, 0x65, 0xaf, 0xd2, 0x46, - 0x84, 0x02, 0x75, 0x39, 0x9c, 0xb0, 0xaf, 0xa0, 0x03, 0x78, 0x94, 0xa2, 0xaa, 0xa8, 0x39, 0x82, - 0x51, 0xd0, 0xbf, 0xc3, 0x5a, 0x49, 0xc0, 0xe4, 0x84, 0x68, 0x58, 0x70, 0xd7, 0xb1, 0x8d, 0x83, - 0x7b, 0xda, 0x9f, 0x04, 0x14, 0xed, 0x3d, 0xd8, 0x60, 0x5b, 0xe1, 0x96, 0x00, 0x3c, 0x3e, 0x0b, - 0xfe, 0x68, 0x3e, 0x50, 0xe6, 0x63, 0x1a, 0x8c, 0x1c, 0xa3, 0x29, 0x81, 0x62, 0x48, 0xa1, 0x8c, - 0xf1, 0x2a, 0x4c, 0x60, 0xad, 0x0d, 0x61, 0xdd, 0xed, 0x6b, 0x90, 0x25, 0xbd, 0x0f, 0x80, 0x91, - 0x39, 0x7f, 0x7d, 0x1d, 0xe6, 0xec, 0xa1, 0x09, 0x76, 0x52, 0xca, 0x07, 0x79, 0x89, 0x19, 0xb4, - 0x01, 0x7a, 0x7f, 0x98, 0x27, 0x12, 0x06, 0x8d, 0x51, 0xc5, 0xb9, 0x9d, 0x73, 0xd0, 0x22, 0xc8, - 0x45, 0xee, 0x26, 0x12, 0xe1, 0xa3, 0x3c, 0x67, 0xcd, 0x38, 0x8a, 0x74, 0x80, 0x86, 0x03, 0x2c, - 0x6d, 0x10, 0x80, 0x02, 0x60, 0x8b, 0xb2, 0x92, 0xb4, 0x2d, 0x58, 0x5d, 0xc6, 0xf9, 0xa6, 0x5b, - 0xd6, 0x2c, 0x07, 0x4a, 0xd4, 0x9e, 0x87, 0x72, 0xb8, 0xb6, 0x53, 0x12, 0x89, 0x52, 0x9c, 0x31, - 0xad, 0xfd, 0xe9, 0x52, 0x26, 0x96, 0x06, 0xcc, 0x93, 0xa1, 0xfc, 0x9c, 0xf9, 0xee, 0x9e, 0x63, - 0xcc, 0x24, 0x19, 0xec, 0x23, 0x98, 0x5b, 0x84, 0xe7, 0xb5, 0x9b, 0x1d, 0xb7, 0xbd, 0x63, 0xe9, - 0x3d, 0x6a, 0xb5, 0x59, 0xa5, 0x9d, 0x12, 0x7f, 0x21, 0xff, 0x62, 0x03, 0xa5, 0xc0, 0x02, 0x6a, - 0x81, 0x02, 0x88, 0x05, 0x20, 0x96, 0x66, 0x14, 0x38, 0x48, 0x22, 0xe0, 0xf9, 0x96, 0x20, 0xe0, - 0x50, 0x46, 0xba, 0x0d, 0xd1, 0x87, 0x94, 0x88, 0xcc, 0x78, 0x6e, 0xe2, 0x47, 0xb9, 0x09, 0x33, - 0x49, 0x10, 0x76, 0x4e, 0xa8, 0x2c, 0xb5, 0x79, 0x27, 0xd0, 0x8d, 0xe3, 0x32, 0x8d, 0x62, 0x70, - 0x0d, 0xa6, 0xac, 0xee, 0xe1, 0xca, 0x8f, 0xd4, 0xee, 0xc2, 0xd3, 0x2e, 0x3c, 0xed, 0x94, 0x38, - 0xc6, 0x53, 0x35, 0x2c, 0x73, 0x38, 0x0a, 0x78, 0x95, 0x13, 0x7c, 0x7c, 0xae, 0xce, 0xd4, 0x02, - 0x2f, 0xd9, 0xbe, 0x3e, 0x39, 0xd8, 0x7f, 0x0e, 0x73, 0x08, 0x33, 0x86, 0x82, 0xcb, 0x6a, 0xbf, - 0xe1, 0x0f, 0xcf, 0xe1, 0x83, 0x47, 0x96, 0xda, 0xfb, 0xf4, 0xee, 0x39, 0x3c, 0x41, 0xf1, 0x8b, - 0xa8, 0x35, 0x74, 0xef, 0x16, 0x1b, 0x85, 0x08, 0x18, 0x47, 0xf8, 0x1c, 0x7a, 0x0f, 0xfe, 0x4a, - 0xed, 0x5d, 0xf8, 0xfb, 0x1c, 0x26, 0x64, 0x25, 0xd0, 0x30, 0x44, 0x75, 0xb7, 0xcf, 0x32, 0xd9, - 0xd5, 0xfb, 0x28, 0x13, 0xfc, 0x79, 0x0e, 0xd7, 0x9e, 0xe9, 0xc0, 0xaf, 0x53, 0xf8, 0xbb, 0x8a, - 0x59, 0xe2, 0xfa, 0xd2, 0xde, 0x81, 0x06, 0xed, 0x36, 0xf9, 0x0d, 0x21, 0xf8, 0xb4, 0x63, 0xda, - 0xee, 0x04, 0x2c, 0x32, 0x8b, 0x6f, 0x7b, 0x93, 0x20, 0xc0, 0x75, 0x41, 0xd1, 0x1e, 0x73, 0x7a, - 0x66, 0xff, 0xea, 0x88, 0xeb, 0x5d, 0x2f, 0xf1, 0x8e, 0x61, 0x8c, 0xd9, 0xbf, 0xc5, 0x95, 0x4c, - 0xe6, 0xdb, 0x30, 0xba, 0xc8, 0x6d, 0xfc, 0x38, 0xcf, 0x0c, 0x0d, 0x3c, 0xea, 0x5a, 0x40, 0x3e, - 0xa4, 0xa4, 0xe0, 0xf7, 0x26, 0xa6, 0x84, 0x66, 0x25, 0xdc, 0x20, 0xca, 0xc6, 0x2f, 0x40, 0xd4, - 0x60, 0x43, 0x6e, 0x49, 0xed, 0x9d, 0x12, 0xa3, 0x23, 0x41, 0xaf, 0xdb, 0xbe, 0x09, 0x63, 0x05, - 0xa6, 0x72, 0x3a, 0x42, 0x89, 0x0a, 0x58, 0x88, 0x84, 0x9d, 0x59, 0xdd, 0xc0, 0xf1, 0x60, 0x4a, - 0xb3, 0x24, 0x2b, 0xa0, 0xe3, 0x1c, 0x9f, 0x25, 0xac, 0x3c, 0x76, 0x78, 0xd1, 0x83, 0x70, 0x79, - 0x45, 0x36, 0x6f, 0x71, 0x2d, 0x02, 0x3c, 0xd9, 0x22, 0x8f, 0x17, 0x81, 0x68, 0xaa, 0xd5, 0x61, - 0xba, 0x55, 0x16, 0x83, 0x4b, 0x68, 0x70, 0xc1, 0xc5, 0xa1, 0x25, 0x67, 0x13, 0x3d, 0x35, 0x2f, - 0x65, 0x3e, 0xdf, 0x34, 0x8c, 0xa0, 0x52, 0xe6, 0x2d, 0x98, 0x59, 0xb4, 0xbd, 0xd6, 0xf4, 0x1c, - 0x27, 0x50, 0xd8, 0xdf, 0x62, 0x34, 0xf3, 0xe6, 0x85, 0x42, 0x6f, 0x58, 0x80, 0x0c, 0xc7, 0xf1, - 0x9a, 0x3f, 0x94, 0x2b, 0xf8, 0x6f, 0xab, 0x50, 0x40, 0x3b, 0x1d, 0x01, 0xfb, 0x03, 0x43, 0xdd, - 0x6e, 0x20, 0x70, 0x14, 0x83, 0x2a, 0x9b, 0xb4, 0x81, 0xa0, 0x55, 0x48, 0xcf, 0xf1, 0x0c, 0xea, - 0xc5, 0x60, 0x43, 0x37, 0x1a, 0x3a, 0x80, 0x39, 0x81, 0x71, 0x3f, 0xfa, 0x96, 0x3e, 0x18, 0x00, - 0x98, 0x99, 0xa0, 0x08, 0xba, 0x55, 0xed, 0xd7, 0x69, 0x0f, 0xa0, 0xcc, 0x40, 0xda, 0x31, 0x76, - 0x7d, 0x7b, 0x4b, 0xaf, 0x55, 0x01, 0x3e, 0x00, 0x5b, 0x53, 0xf0, 0xcd, 0x07, 0xda, 0x2c, 0xab, - 0xee, 0x7d, 0xb8, 0x18, 0x08, 0x9b, 0x5e, 0xc9, 0x91, 0x58, 0xa6, 0x4d, 0x75, 0xaf, 0x00, 0xd3, - 0xd9, 0x30, 0x31, 0xce, 0x08, 0x1c, 0xd2, 0x73, 0x40, 0xcd, 0xc6, 0x0a, 0xf9, 0x61, 0x30, 0xe8, - 0xd1, 0x6a, 0x95, 0xa8, 0x7f, 0x81, 0xe7, 0x5e, 0x43, 0x1d, 0x34, 0x2a, 0x04, 0xd2, 0xc4, 0xbf, - 0xc8, 0x4b, 0xc3, 0x56, 0xab, 0xf8, 0x6f, 0x6a, 0xd8, 0x1c, 0x7b, 0xab, 0x9c, 0x1c, 0x38, 0x87, - 0xad, 0x0c, 0xbc, 0xc1, 0x98, 0x91, 0x1e, 0xf5, 0x21, 0xfb, 0x67, 0x65, 0xd4, 0x0d, 0xda, 0xdb, - 0x7a, 0x74, 0x74, 0x68, 0xba, 0x9e, 0x17, 0xd1, 0x80, 0x31, 0x33, 0x26, 0xd4, 0x1b, 0xf6, 0x72, - 0x18, 0xcd, 0x91, 0x72, 0x43, 0x55, 0x88, 0x2a, 0x27, 0xe8, 0xcd, 0x28, 0x4a, 0x11, 0x9e, 0x51, - 0x9e, 0x1a, 0x44, 0x46, 0x79, 0x26, 0xdd, 0xc2, 0x90, 0xbe, 0x54, 0x26, 0xdb, 0x9b, 0xdb, 0x95, - 0xed, 0x1a, 0x97, 0x49, 0x6d, 0xb3, 0x56, 0xaf, 0x65, 0xcb, 0x64, 0xd0, 0x1b, 0xd4, 0x06, 0xb5, - 0x94, 0x4c, 0x2a, 0xe5, 0xda, 0x56, 0xa5, 0x97, 0x94, 0x48, 0x0c, 0x49, 0x4b, 0x24, 0x06, 0xa7, - 0x85, 0x12, 0x83, 0xd3, 0xc3, 0x48, 0x02, 0x0a, 0x7e, 0x73, 0x2b, 0x1e, 0x18, 0x58, 0xfc, 0x3f, - 0xfd, 0x94, 0x59, 0x99, 0x2e, 0x91, 0x02, 0x25, 0x86, 0x50, 0xae, 0x54, 0x93, 0xc4, 0xaa, 0xec, - 0x9f, 0xd4, 0x88, 0x1a, 0x46, 0x63, 0xab, 0xa1, 0xb3, 0xd9, 0x90, 0x26, 0x35, 0x2a, 0x88, 0x38, - 0x06, 0xfe, 0xec, 0x79, 0x96, 0x35, 0xb6, 0x1b, 0xc6, 0xa6, 0x21, 0xaa, 0xa0, 0x4f, 0x4b, 0x55, - 0x51, 0xeb, 0xd5, 0xed, 0xc6, 0xee, 0x52, 0x95, 0x83, 0xcd, 0xc3, 0xf2, 0xe1, 0xc1, 0xcb, 0x67, - 0x68, 0x9a, 0xca, 0x08, 0x55, 0x74, 0x89, 0xce, 0x71, 0x89, 0x25, 0x7d, 0xdd, 0xa8, 0x2d, 0x75, - 0x49, 0x37, 0xeb, 0xb5, 0x2d, 0x75, 0xa5, 0x2d, 0x0e, 0x8e, 0x0c, 0x12, 0x7a, 0xcd, 0x34, 0xf5, - 0x9c, 0x73, 0x49, 0x45, 0xae, 0xf4, 0x8c, 0x32, 0x93, 0xfd, 0xb0, 0x30, 0xf1, 0xac, 0x26, 0xfc, - 0x97, 0xdb, 0x60, 0x3b, 0x62, 0xb8, 0xa7, 0x67, 0x72, 0x3f, 0x56, 0x72, 0x20, 0xbd, 0x07, 0xe9, - 0x05, 0x10, 0xdd, 0x8d, 0xa3, 0x0d, 0xb2, 0x8d, 0x78, 0xca, 0x0d, 0xf4, 0xb1, 0x69, 0xcd, 0x9a, - 0x1b, 0xe7, 0x1e, 0x85, 0x40, 0x10, 0x43, 0x85, 0x80, 0x54, 0xce, 0x37, 0x94, 0xfe, 0x04, 0x42, - 0xd3, 0x3b, 0x2a, 0xa8, 0x41, 0xf7, 0x9c, 0x26, 0xa6, 0x5c, 0xad, 0x36, 0x36, 0x33, 0x0d, 0xc8, - 0x1f, 0x40, 0xcc, 0x9e, 0x33, 0x36, 0xfb, 0xe4, 0x94, 0x4e, 0xe8, 0x82, 0x10, 0xf4, 0x44, 0xcc, - 0x01, 0xa5, 0x76, 0x26, 0xd8, 0xba, 0x3c, 0x73, 0xbb, 0x51, 0xe8, 0xc7, 0x82, 0xe7, 0x81, 0x29, - 0xa0, 0x04, 0xd7, 0xa9, 0x6d, 0xfd, 0xae, 0xf8, 0xcd, 0x67, 0x05, 0x40, 0x90, 0x28, 0xa8, 0xa8, - 0x95, 0x5a, 0xb9, 0xac, 0xd6, 0x19, 0x18, 0xdc, 0xbc, 0xc3, 0xc1, 0x7c, 0x0d, 0xaf, 0x54, 0x1a, - 0x9a, 0xc1, 0x68, 0xd2, 0xc3, 0x18, 0xb9, 0x44, 0xa7, 0xce, 0xd4, 0x2c, 0x45, 0xed, 0x2b, 0xc4, - 0x9f, 0xf4, 0xc6, 0x66, 0x40, 0x78, 0xec, 0xea, 0x13, 0xb0, 0x40, 0x18, 0xa4, 0x12, 0xd6, 0xa7, - 0xee, 0x93, 0xf3, 0x0b, 0x06, 0x4b, 0xd7, 0x62, 0xbd, 0x74, 0xd8, 0xc6, 0xa7, 0xff, 0x92, 0x5e, - 0x4a, 0x38, 0x15, 0xcd, 0xc0, 0x2f, 0x21, 0xfd, 0xac, 0xf2, 0x9e, 0xe3, 0xce, 0x3c, 0x9c, 0x72, - 0xe4, 0x7f, 0xfe, 0x93, 0x11, 0x4f, 0xde, 0xb0, 0xca, 0xf1, 0xc0, 0x21, 0xd4, 0xc7, 0x2a, 0x44, - 0xf4, 0xf2, 0x67, 0xca, 0x42, 0xd6, 0x4a, 0x3f, 0xfd, 0xb4, 0x46, 0x7e, 0xc2, 0x3c, 0x84, 0x09, - 0x8c, 0x24, 0x54, 0x86, 0xb0, 0x50, 0x07, 0x4b, 0xcf, 0x3d, 0xf3, 0x0e, 0xc5, 0xe7, 0xb2, 0xe4, - 0xd0, 0x27, 0xba, 0x07, 0xcf, 0x10, 0xa4, 0x99, 0xf7, 0xd4, 0x20, 0x53, 0x60, 0x06, 0xd1, 0xc9, - 0xc6, 0x0f, 0x1b, 0xc4, 0x47, 0x81, 0xd0, 0x19, 0x80, 0x2c, 0x0b, 0xe9, 0x18, 0x43, 0x86, 0x3f, - 0x06, 0xe3, 0x65, 0xe0, 0x7e, 0x0d, 0x94, 0x90, 0x1e, 0x64, 0x88, 0x90, 0x6a, 0x40, 0x9b, 0x25, - 0x91, 0x00, 0x89, 0xed, 0x0e, 0x32, 0x5f, 0x5b, 0x23, 0x24, 0x99, 0x07, 0x01, 0x04, 0xb5, 0x02, - 0xe3, 0x2a, 0x4c, 0x86, 0x88, 0x46, 0x12, 0x89, 0x51, 0x6b, 0x8d, 0x15, 0xe2, 0x0b, 0x0f, 0xc8, - 0x4e, 0x4c, 0x18, 0x79, 0x5e, 0x23, 0x92, 0x51, 0x18, 0x58, 0xf4, 0x9e, 0xe0, 0x1f, 0x9c, 0x1c, - 0x93, 0xb1, 0x2d, 0x25, 0x91, 0xe3, 0x84, 0x0a, 0x91, 0x6f, 0x76, 0x5e, 0x15, 0x0a, 0xa4, 0x03, - 0x04, 0x05, 0x6c, 0x4c, 0x3a, 0xf1, 0x71, 0x03, 0x5c, 0x0f, 0x18, 0xad, 0x81, 0xe3, 0x12, 0xbd, - 0xe7, 0xdc, 0x51, 0xf6, 0xc6, 0x98, 0x03, 0xea, 0x6c, 0x0e, 0x79, 0x8c, 0x0a, 0xd5, 0x2c, 0x67, - 0xca, 0x8a, 0x46, 0x94, 0x29, 0x07, 0x6a, 0xde, 0xbd, 0x8b, 0x0b, 0x71, 0x77, 0xd0, 0x20, 0xf0, - 0x10, 0x92, 0x55, 0x04, 0x0e, 0x40, 0x33, 0x74, 0x7b, 0x16, 0x6d, 0xba, 0x93, 0x35, 0xae, 0xee, - 0x04, 0xa4, 0xea, 0x8f, 0x3c, 0xdc, 0x5c, 0x37, 0x71, 0xc5, 0x92, 0x02, 0x4f, 0x41, 0x97, 0x21, - 0x91, 0x1e, 0x61, 0x12, 0x0c, 0x15, 0xfd, 0x11, 0x74, 0x00, 0xbd, 0x62, 0x1f, 0x7a, 0x82, 0xc8, - 0x42, 0xa1, 0x0d, 0x6d, 0xec, 0x18, 0xe6, 0x1d, 0x8b, 0xb0, 0x79, 0x91, 0xc4, 0xa5, 0x05, 0x89, - 0x1e, 0x33, 0x0b, 0x14, 0xf7, 0x0c, 0x08, 0x18, 0x04, 0xbe, 0x26, 0xd7, 0x66, 0x9d, 0xb2, 0xe1, - 0x9e, 0x63, 0x54, 0xbd, 0x68, 0x93, 0x20, 0x3e, 0xf6, 0xa2, 0x13, 0x57, 0x37, 0x0c, 0x10, 0x15, - 0xb6, 0xcb, 0x04, 0x09, 0x7c, 0x98, 0x42, 0x16, 0x4f, 0xcc, 0x60, 0x83, 0xd1, 0x85, 0x22, 0xf7, - 0x71, 0x04, 0x8b, 0xca, 0x8c, 0x9e, 0x48, 0xda, 0x23, 0x13, 0xea, 0xdb, 0x9c, 0x3a, 0x41, 0x9f, - 0xa0, 0xc9, 0xd5, 0x0b, 0x55, 0x92, 0x20, 0x4c, 0x6a, 0xfb, 0xce, 0x38, 0x49, 0xc0, 0x4e, 0x09, - 0xb0, 0xd9, 0xa8, 0xa2, 0x87, 0x35, 0x41, 0xee, 0xfb, 0x34, 0xdf, 0x49, 0x4f, 0xf7, 0x08, 0xa8, - 0x36, 0x90, 0xcb, 0xb5, 0x4f, 0x30, 0x1f, 0xd9, 0x0e, 0x44, 0x03, 0xab, 0x81, 0x87, 0xba, 0x35, - 0xd5, 0x67, 0x3e, 0xb9, 0x33, 0x7d, 0xb3, 0x07, 0x96, 0x61, 0x89, 0x5f, 0x28, 0xc9, 0x02, 0xb4, - 0x18, 0x73, 0x4c, 0xa8, 0x8c, 0x0e, 0x6e, 0xd5, 0x66, 0x06, 0x32, 0xe8, 0x8f, 0xb8, 0x02, 0x71, - 0xf9, 0x14, 0x54, 0x4c, 0x35, 0x18, 0x5d, 0x29, 0xaa, 0xd8, 0xe0, 0x51, 0xaa, 0xf0, 0xe2, 0x33, - 0xa6, 0xb8, 0x30, 0x33, 0x63, 0x39, 0x23, 0x49, 0x60, 0x99, 0x2c, 0x20, 0x84, 0x2e, 0xa9, 0x03, - 0x63, 0xe0, 0x9d, 0x6e, 0x5a, 0x78, 0xd2, 0x83, 0xf4, 0x3c, 0xc7, 0x9f, 0x82, 0xb4, 0x98, 0xe3, - 0x29, 0x92, 0x33, 0x50, 0x9f, 0x01, 0xea, 0x16, 0x8c, 0x04, 0x12, 0x93, 0x58, 0x5f, 0xa0, 0x2e, - 0xe7, 0x30, 0x0e, 0x54, 0x8f, 0x95, 0x8c, 0x80, 0x4d, 0x86, 0xfc, 0x1d, 0xf9, 0x62, 0xd3, 0x3b, - 0x6c, 0x06, 0xd4, 0xc6, 0x57, 0x60, 0x38, 0xd0, 0x06, 0xd3, 0x24, 0xe8, 0x6c, 0x00, 0xae, 0x04, - 0x8a, 0x30, 0x64, 0xa3, 0x82, 0x71, 0x42, 0xcb, 0x79, 0x08, 0x97, 0xc5, 0xa3, 0x98, 0x3f, 0x8c, - 0x15, 0x43, 0xcf, 0x99, 0x16, 0xca, 0xc4, 0x11, 0xc4, 0x15, 0x38, 0x29, 0x49, 0xc5, 0x62, 0x3c, - 0x89, 0x07, 0x8f, 0xbc, 0xe1, 0x72, 0xf2, 0x29, 0x00, 0x21, 0x88, 0x98, 0xc1, 0xec, 0x32, 0x68, - 0x52, 0x96, 0xc8, 0x21, 0x5d, 0xf0, 0x71, 0x00, 0xd3, 0x81, 0xb1, 0xa5, 0x1f, 0x80, 0xcf, 0xe1, - 0x9c, 0x4c, 0xa9, 0x52, 0x2c, 0x3a, 0xd1, 0xc5, 0xb2, 0xf8, 0x46, 0x05, 0x88, 0x38, 0x05, 0x3d, - 0x89, 0x2a, 0xbc, 0xf7, 0x94, 0xbc, 0x53, 0xa2, 0x5d, 0x8c, 0x68, 0x56, 0xd0, 0x27, 0x81, 0xb3, - 0x68, 0x21, 0xd2, 0xc4, 0x54, 0x73, 0x48, 0x57, 0x26, 0x63, 0x92, 0x8d, 0x96, 0x57, 0x1a, 0x25, - 0xcc, 0x81, 0x42, 0xe2, 0x0b, 0xa1, 0x62, 0xa1, 0x07, 0xe3, 0xbd, 0x6d, 0x12, 0xf6, 0x53, 0x40, - 0x88, 0xd4, 0x5e, 0x5b, 0xed, 0x74, 0xa1, 0x71, 0x82, 0xbf, 0x97, 0xe8, 0xea, 0x50, 0xbb, 0x6d, - 0xb0, 0x33, 0xfa, 0xd8, 0x05, 0xcd, 0x71, 0x06, 0x6c, 0xda, 0x0e, 0x29, 0x9f, 0xad, 0x51, 0xaf, - 0xcc, 0x0b, 0x72, 0xb5, 0x48, 0xd8, 0x22, 0x05, 0xed, 0xcc, 0xcc, 0x99, 0x80, 0x9a, 0x80, 0xf8, - 0x59, 0x85, 0x98, 0xc1, 0xd0, 0xfe, 0x0b, 0x38, 0xcd, 0x58, 0xfc, 0x38, 0xc3, 0x46, 0xe5, 0x68, - 0x98, 0x7c, 0x52, 0x36, 0xeb, 0x74, 0x2c, 0xb5, 0xdf, 0x52, 0xc8, 0x17, 0x40, 0x0d, 0xcf, 0x6c, - 0xba, 0x53, 0x1a, 0x95, 0x5f, 0x88, 0x7d, 0x39, 0x75, 0xbe, 0x07, 0x7b, 0xe4, 0xd1, 0xef, 0x69, - 0xfd, 0xd0, 0x99, 0x78, 0xdf, 0x83, 0x0e, 0x1a, 0xb9, 0x40, 0x4f, 0xc8, 0x08, 0xf9, 0xf7, 0x3d, - 0x02, 0xe2, 0xe6, 0x00, 0xd5, 0x1c, 0xd8, 0x6a, 0x7a, 0xc2, 0x56, 0xdc, 0xc7, 0x76, 0x14, 0xbc, - 0xeb, 0x24, 0x10, 0x92, 0x83, 0x8e, 0xff, 0x70, 0x89, 0x89, 0x49, 0x1b, 0x8d, 0xb5, 0xa7, 0xf7, - 0x6f, 0x87, 0x6c, 0xcf, 0x56, 0xc4, 0x91, 0x64, 0xe8, 0xd1, 0x99, 0xb4, 0x18, 0x9b, 0xe0, 0x0e, - 0x73, 0x1b, 0x40, 0x98, 0xce, 0xb4, 0x9c, 0x50, 0xbe, 0x12, 0x82, 0x4e, 0x83, 0x79, 0x2d, 0x16, - 0x00, 0x70, 0xc3, 0x0e, 0x64, 0xf6, 0x47, 0xa6, 0x65, 0x78, 0x60, 0xa5, 0x22, 0x0f, 0xc6, 0xe8, - 0xe6, 0x86, 0x39, 0xd0, 0x6f, 0x91, 0x9f, 0x13, 0x97, 0x1b, 0xa5, 0x09, 0xe8, 0x27, 0x3b, 0xc7, - 0xc6, 0x2c, 0x81, 0xb0, 0xe4, 0xe9, 0x7e, 0x93, 0xf3, 0x2f, 0x63, 0xbe, 0x0b, 0xa3, 0x2d, 0xdc, - 0xdd, 0x37, 0x08, 0x7f, 0xcc, 0xc1, 0x2c, 0x76, 0x32, 0x91, 0xe5, 0x44, 0xf9, 0xb6, 0x2f, 0x29, - 0x44, 0x08, 0x7b, 0xc2, 0x3c, 0x1d, 0x62, 0xd7, 0xd7, 0xac, 0xeb, 0x3c, 0x79, 0x4b, 0xf9, 0xb2, - 0x5e, 0x42, 0x1f, 0x62, 0x11, 0xaf, 0x0a, 0x7b, 0xc5, 0x43, 0x1d, 0x72, 0xdb, 0x9a, 0x0c, 0x1d, - 0x84, 0x51, 0x15, 0x91, 0x51, 0xca, 0x51, 0x2d, 0x19, 0x5a, 0x6e, 0x98, 0x1f, 0x31, 0x4d, 0x49, - 0x57, 0xce, 0x9e, 0x03, 0x6f, 0x62, 0xf7, 0x59, 0x20, 0x06, 0x0e, 0x55, 0x6a, 0xaf, 0xf7, 0x21, - 0x32, 0x6d, 0x11, 0xb6, 0x3a, 0x27, 0x5a, 0xd8, 0x40, 0xd0, 0x46, 0x5b, 0xac, 0xd3, 0xa5, 0xce, - 0xc8, 0xfc, 0xef, 0x7f, 0xfc, 0x37, 0x29, 0xb0, 0x98, 0x15, 0x20, 0xca, 0x22, 0x78, 0x45, 0xde, - 0xc7, 0x4b, 0xb1, 0x28, 0x25, 0x11, 0x4e, 0x1a, 0x04, 0x14, 0x03, 0x7a, 0xe6, 0x61, 0xa7, 0x18, - 0xf6, 0x0d, 0xd7, 0x77, 0x08, 0x50, 0xaf, 0x5c, 0x16, 0xd1, 0xe3, 0x70, 0xfb, 0x71, 0x80, 0x0c, - 0x51, 0x02, 0x54, 0x8e, 0x82, 0x16, 0x3e, 0x38, 0x56, 0x21, 0x5e, 0x4e, 0xfb, 0x75, 0x42, 0xbd, - 0x59, 0x97, 0x65, 0x5f, 0x8e, 0x97, 0xdb, 0xf8, 0x41, 0x78, 0xa6, 0x22, 0xa3, 0x5b, 0x2c, 0x78, - 0x5f, 0xe2, 0x94, 0xd0, 0x08, 0xee, 0x77, 0xed, 0x43, 0x1f, 0x39, 0x19, 0x97, 0xd2, 0x50, 0x64, - 0x9f, 0xa8, 0xee, 0xe5, 0x64, 0x68, 0x30, 0x04, 0x0a, 0x20, 0x5a, 0xd9, 0x85, 0x90, 0x6e, 0x0d, - 0x29, 0x62, 0x51, 0x2c, 0x81, 0x48, 0xb5, 0x4b, 0x83, 0xa4, 0x1b, 0xe1, 0x11, 0x2f, 0x2f, 0xfa, - 0xab, 0xab, 0x7b, 0xfa, 0x98, 0xcc, 0xf9, 0x4e, 0x49, 0x18, 0xed, 0xf3, 0x42, 0x00, 0x98, 0x44, - 0x2b, 0xc1, 0x5f, 0xf4, 0xba, 0xbc, 0x01, 0xce, 0x3b, 0xb6, 0x8b, 0x39, 0x8e, 0x1f, 0xa3, 0xd0, - 0x14, 0x26, 0x67, 0xee, 0x55, 0x12, 0xcc, 0xf7, 0x6f, 0x38, 0x87, 0xd8, 0xea, 0xf9, 0x0f, 0xcb, - 0xad, 0xc0, 0xa8, 0x16, 0x15, 0x38, 0x62, 0xe6, 0x42, 0xe4, 0x46, 0xb2, 0xe2, 0x91, 0xb1, 0xa1, - 0x24, 0xaa, 0x15, 0x4d, 0x23, 0x8a, 0x7f, 0xd3, 0x62, 0x58, 0x0a, 0x51, 0x9f, 0xe0, 0x3b, 0xc4, - 0xae, 0xc0, 0xfa, 0x28, 0x10, 0x22, 0x45, 0xc0, 0x98, 0x14, 0x4c, 0xe8, 0x18, 0x24, 0x00, 0x8e, - 0xf8, 0x40, 0xef, 0x8f, 0x72, 0x08, 0x43, 0x5a, 0x88, 0xd6, 0x16, 0xe3, 0xe5, 0x23, 0x8e, 0xe0, - 0x6c, 0x03, 0x1f, 0xe8, 0x65, 0x3b, 0xf1, 0x44, 0xd3, 0x1e, 0x19, 0x31, 0xdf, 0xa8, 0x8f, 0x5b, - 0x80, 0xb4, 0x30, 0xaa, 0x1f, 0xc7, 0xed, 0xb8, 0x8f, 0x9e, 0xdb, 0xe0, 0x19, 0x39, 0x35, 0x36, - 0x64, 0x81, 0x1a, 0x12, 0xb6, 0xa5, 0xfe, 0x64, 0x4d, 0x8f, 0x8e, 0xc1, 0xb8, 0x65, 0x55, 0x66, - 0xbf, 0xa1, 0x9c, 0xc5, 0xa7, 0x45, 0x40, 0xf2, 0x1d, 0xcc, 0x5a, 0xc4, 0x11, 0xff, 0x20, 0xbb, - 0x4c, 0xe3, 0x09, 0x66, 0x81, 0x68, 0xff, 0xa9, 0x58, 0x95, 0x0c, 0x68, 0x63, 0x9d, 0xe7, 0xb4, - 0x2f, 0x72, 0xb5, 0xc3, 0x89, 0x9d, 0xa4, 0x1a, 0xd3, 0xb4, 0x0d, 0xac, 0xb8, 0x91, 0xd8, 0xbf, - 0x02, 0xc5, 0x17, 0x08, 0x37, 0x19, 0xb6, 0x3c, 0x91, 0xad, 0x91, 0x6c, 0x97, 0x95, 0xb0, 0xe5, - 0x89, 0xea, 0x4b, 0x41, 0x7a, 0x8c, 0xc3, 0x3d, 0x7a, 0x94, 0x10, 0xe1, 0x42, 0x85, 0xd4, 0xfe, - 0x71, 0xfe, 0x28, 0xcf, 0xc3, 0xa4, 0xed, 0x5f, 0x8a, 0xfc, 0xd2, 0x1d, 0xae, 0xc4, 0x3e, 0x37, - 0xe0, 0x3f, 0x32, 0xf8, 0x91, 0xcb, 0xee, 0x4b, 0x26, 0xf9, 0xb8, 0xd9, 0x9b, 0x74, 0x80, 0xc9, - 0x5e, 0x6e, 0xd6, 0x16, 0x02, 0x29, 0x95, 0x0c, 0xc7, 0x06, 0x43, 0x36, 0x40, 0xf3, 0xb8, 0xe0, - 0x23, 0x84, 0xd4, 0xe0, 0x4b, 0x31, 0x20, 0xf0, 0x79, 0x36, 0x61, 0x1b, 0x4c, 0x52, 0xb6, 0x63, - 0x50, 0xbf, 0x48, 0x82, 0x9e, 0xd1, 0x24, 0x29, 0x52, 0x08, 0xa8, 0x0c, 0x43, 0x35, 0xc0, 0x23, - 0x19, 0x10, 0x74, 0xf4, 0x03, 0x6b, 0xb6, 0x24, 0x4b, 0xd0, 0xcb, 0x7d, 0x3a, 0xd0, 0x27, 0x56, - 0xf0, 0x01, 0xf7, 0x1f, 0xfc, 0x94, 0x44, 0x1f, 0x45, 0x79, 0x6c, 0x90, 0xf1, 0x20, 0xd0, 0x4a, - 0x3f, 0x67, 0x4b, 0x9f, 0xb7, 0xde, 0x7c, 0x99, 0x07, 0xd3, 0x16, 0x0f, 0x3c, 0x38, 0xf2, 0x44, - 0xb8, 0x17, 0x51, 0x6c, 0x61, 0xea, 0x3f, 0x1d, 0xe1, 0x29, 0x18, 0x66, 0x8a, 0xc6, 0xb8, 0xcf, - 0x4c, 0xfd, 0xb4, 0xd1, 0xe7, 0x67, 0x0b, 0x22, 0xa3, 0x8f, 0x07, 0xb3, 0x48, 0x81, 0x2f, 0x7a, - 0x88, 0x3e, 0x00, 0xc2, 0x6b, 0x00, 0xe2, 0x70, 0xc8, 0x22, 0x99, 0xde, 0x8c, 0xcd, 0xa3, 0x68, - 0xdb, 0xea, 0x51, 0xf7, 0x80, 0xad, 0xe5, 0x16, 0x0d, 0x47, 0x9c, 0x63, 0xdc, 0xc9, 0x70, 0x00, - 0x19, 0x67, 0xe1, 0xf8, 0x79, 0x4b, 0x94, 0x65, 0x82, 0x35, 0x68, 0x49, 0xc6, 0x69, 0x3b, 0x8a, - 0x96, 0x23, 0xd1, 0x51, 0xc2, 0xd1, 0x4c, 0xd8, 0x9c, 0xed, 0x46, 0x96, 0xed, 0x3d, 0xd0, 0x9d, - 0x03, 0x2f, 0x81, 0x72, 0x78, 0x31, 0x83, 0xc5, 0x9b, 0xef, 0xd2, 0xbe, 0x39, 0x30, 0x17, 0x8b, - 0x36, 0xa6, 0x91, 0xcd, 0x4b, 0xb0, 0x64, 0x29, 0x1e, 0x46, 0x78, 0xdf, 0xcf, 0x41, 0xb0, 0x18, - 0x0b, 0xcb, 0xf7, 0x07, 0xf3, 0x8d, 0xdb, 0x5b, 0x68, 0x3e, 0x66, 0x46, 0x89, 0xbc, 0x11, 0x6c, - 0x98, 0xd8, 0x26, 0x98, 0x7a, 0xae, 0x41, 0x8b, 0x93, 0x5f, 0xc8, 0x69, 0x54, 0x1f, 0xc1, 0x54, - 0xcc, 0x6b, 0x39, 0x3f, 0x05, 0x81, 0xfc, 0xe0, 0x0d, 0xaf, 0xcb, 0x8e, 0x89, 0x3e, 0x41, 0x1c, - 0xab, 0x00, 0x14, 0x5a, 0x30, 0x8b, 0x73, 0x09, 0x22, 0x21, 0xb4, 0x87, 0xe0, 0xea, 0x3e, 0xf2, - 0xeb, 0xbe, 0x9c, 0xf4, 0x1b, 0xe2, 0x94, 0x48, 0xf2, 0xa0, 0xd1, 0x11, 0x62, 0xe7, 0x98, 0x77, - 0x19, 0x47, 0xaa, 0xa0, 0x2d, 0xab, 0x87, 0xcc, 0x80, 0xac, 0xe1, 0xc8, 0xa6, 0xb3, 0xee, 0xc7, - 0xba, 0xfb, 0xb4, 0x5e, 0x2d, 0x6c, 0x3f, 0xfa, 0xb2, 0x24, 0x1f, 0x48, 0x0f, 0x54, 0x6a, 0x8c, - 0xb7, 0x43, 0xd8, 0x7a, 0x98, 0x45, 0xef, 0xa8, 0xc5, 0x64, 0x9a, 0xe0, 0x04, 0x3b, 0x38, 0xa7, - 0x25, 0x19, 0x22, 0xc6, 0xc1, 0x3a, 0xe6, 0xc4, 0xb6, 0x13, 0x0e, 0x82, 0xd7, 0x8a, 0xfc, 0x10, - 0xd4, 0x7c, 0x41, 0x04, 0x41, 0x5e, 0x93, 0x85, 0xe7, 0x22, 0x4d, 0xb2, 0xb1, 0x11, 0x37, 0x27, - 0xb8, 0xc5, 0xfd, 0x4a, 0xbc, 0xc5, 0x9c, 0x14, 0x88, 0x38, 0x30, 0xbd, 0x3c, 0x67, 0xf9, 0x71, - 0xae, 0x64, 0x18, 0x13, 0xc7, 0xe1, 0xb1, 0x87, 0x17, 0x64, 0xb2, 0x75, 0x9a, 0x1f, 0xe7, 0x11, - 0x05, 0x21, 0x06, 0xe0, 0x35, 0x89, 0x60, 0xdd, 0x02, 0xdf, 0x05, 0x07, 0xf7, 0x02, 0xbf, 0x21, - 0xf3, 0x33, 0xf8, 0x90, 0x34, 0xe8, 0xb1, 0x24, 0x80, 0x25, 0xdf, 0x1c, 0xd3, 0xce, 0x6d, 0x08, - 0xe7, 0xcb, 0x5c, 0x65, 0x14, 0x86, 0x2d, 0xb9, 0x4b, 0xe4, 0x6a, 0x42, 0x65, 0x9f, 0x89, 0x5f, - 0x22, 0x99, 0x64, 0x1b, 0x82, 0x94, 0xe2, 0x0a, 0xb5, 0x7a, 0x7a, 0x46, 0x31, 0x7d, 0x7d, 0xd6, - 0x16, 0x3d, 0x15, 0xf2, 0xad, 0xad, 0x6a, 0x88, 0xe8, 0xe4, 0x31, 0xa5, 0x8c, 0x34, 0x64, 0x45, - 0x3f, 0x56, 0x66, 0xf3, 0xa3, 0x9e, 0xfc, 0x51, 0x35, 0xf9, 0x5d, 0x4a, 0x72, 0x64, 0xa4, 0x55, - 0xc4, 0x34, 0x5e, 0xae, 0x20, 0x19, 0xf9, 0x1a, 0x57, 0x17, 0xcc, 0xfa, 0x7e, 0x9c, 0xa7, 0x86, - 0xc4, 0xb4, 0x66, 0xbc, 0x14, 0x91, 0x24, 0xe2, 0x01, 0x31, 0x8d, 0x57, 0x55, 0x67, 0x11, 0x94, - 0x3e, 0xa5, 0x3c, 0x91, 0xf1, 0x4f, 0xa8, 0xd0, 0xd5, 0x51, 0x6c, 0x8b, 0x4b, 0x25, 0xae, 0x32, - 0x57, 0x47, 0x98, 0xfb, 0x8d, 0x75, 0x23, 0x8a, 0x39, 0x74, 0x48, 0x91, 0x23, 0x5d, 0x19, 0xe9, - 0x77, 0x68, 0x0a, 0xa8, 0x38, 0x4a, 0x46, 0x21, 0x7f, 0x64, 0xa9, 0xbd, 0x03, 0xd1, 0x85, 0xee, - 0x06, 0xfc, 0xc1, 0x60, 0xce, 0x99, 0x57, 0x79, 0x0d, 0x2d, 0x47, 0xed, 0xa6, 0xcc, 0x5e, 0x2a, - 0x36, 0x51, 0xc8, 0x23, 0x91, 0x87, 0x30, 0x47, 0xd1, 0x59, 0x31, 0x9f, 0xe0, 0x0a, 0x16, 0xee, - 0x35, 0xe0, 0x7a, 0x34, 0x67, 0x32, 0x2e, 0x24, 0xe8, 0x89, 0xcc, 0x2d, 0x2b, 0x0c, 0x43, 0x1d, - 0x4f, 0xbe, 0xaf, 0x3d, 0x19, 0xcf, 0x00, 0x76, 0x06, 0x74, 0x6d, 0xc5, 0xcb, 0x2e, 0x1c, 0x42, - 0xeb, 0x25, 0x1e, 0x38, 0xde, 0xc6, 0x48, 0xab, 0x16, 0xf4, 0x96, 0x79, 0x5a, 0x64, 0x39, 0xf5, - 0x13, 0x9d, 0xb0, 0x5c, 0x62, 0x79, 0x1e, 0xa4, 0x51, 0x97, 0x42, 0xb6, 0x27, 0x73, 0x4f, 0x11, - 0x99, 0xc5, 0xae, 0x5a, 0xc4, 0x6c, 0x91, 0x1b, 0x38, 0x4a, 0xed, 0x48, 0x2c, 0x85, 0x0b, 0x58, - 0xd1, 0x0c, 0x56, 0xc2, 0xb2, 0x98, 0xcc, 0xe5, 0x71, 0x42, 0x26, 0x8f, 0xcb, 0x2d, 0xeb, 0xeb, - 0x8f, 0x26, 0xc5, 0x1a, 0x4c, 0x54, 0x2c, 0x7f, 0xd4, 0x20, 0xf1, 0x63, 0x9e, 0xcf, 0x0f, 0xf0, - 0xb1, 0x06, 0xbe, 0xa8, 0x5f, 0x17, 0x51, 0x69, 0x3a, 0x22, 0x02, 0xf6, 0x8b, 0x55, 0x8c, 0x89, - 0xe7, 0x41, 0x9a, 0x63, 0xcd, 0x32, 0x16, 0x0f, 0x70, 0xa2, 0x64, 0x25, 0xf3, 0x60, 0x5f, 0xd8, - 0x14, 0xf2, 0xb1, 0x15, 0x5f, 0xac, 0x6a, 0x89, 0x43, 0x97, 0x6c, 0x3f, 0x88, 0x9d, 0xb7, 0x64, - 0xd1, 0xb7, 0xe9, 0xbb, 0x96, 0x3e, 0x4b, 0x4c, 0x11, 0x6c, 0x72, 0x59, 0x5b, 0xd9, 0x41, 0x7b, - 0x2c, 0xc8, 0x56, 0x4f, 0x5e, 0x1c, 0xae, 0x9e, 0x0c, 0xc2, 0xbd, 0x2d, 0x05, 0x27, 0xfd, 0x5c, - 0xac, 0x5f, 0xe2, 0xe9, 0x8b, 0xd6, 0x58, 0xf7, 0x86, 0xa6, 0xdd, 0x54, 0x5b, 0xb8, 0xb3, 0x03, - 0xf3, 0xa5, 0xa9, 0x86, 0x88, 0x38, 0x5f, 0xac, 0xfb, 0xf1, 0xbd, 0xed, 0xc4, 0x26, 0x72, 0x72, - 0x33, 0xd8, 0xd7, 0x6d, 0xbf, 0xe0, 0x53, 0xcf, 0x1c, 0x84, 0xc5, 0xde, 0xb0, 0xe0, 0x4f, 0xfa, - 0x7d, 0xea, 0xfb, 0xf3, 0x95, 0x55, 0xc3, 0x1f, 0x6a, 0x7d, 0x7d, 0x50, 0x57, 0x19, 0x92, 0x69, - 0x0f, 0x9c, 0x0c, 0x8c, 0x4a, 0x79, 0xbb, 0x31, 0xa8, 0x32, 0x8c, 0xa9, 0xee, 0xd9, 0x19, 0x18, - 0x83, 0x41, 0xbf, 0xac, 0x6e, 0x32, 0x0c, 0xb6, 0x65, 0x95, 0x89, 0x52, 0xaf, 0xd4, 0x2b, 0x61, - 0xbc, 0x6e, 0x91, 0x81, 0x52, 0xad, 0x56, 0x43, 0xb1, 0xa4, 0x94, 0x59, 0x5a, 0x0b, 0x8b, 0x46, - 0xa1, 0x07, 0xf3, 0xee, 0x76, 0x2e, 0x04, 0xd2, 0x64, 0x6f, 0x08, 0xc6, 0x64, 0x32, 0x86, 0xe2, - 0x0b, 0x02, 0x6d, 0x90, 0x57, 0x0c, 0xc4, 0x97, 0xb0, 0x98, 0x48, 0x56, 0xe7, 0xec, 0x99, 0x27, - 0x55, 0x20, 0xf2, 0x26, 0x87, 0x0a, 0x14, 0xbe, 0x31, 0x30, 0x8f, 0x9f, 0x9b, 0x65, 0x51, 0x10, - 0x25, 0xac, 0xf3, 0xc4, 0x1b, 0x88, 0x26, 0x55, 0x58, 0x4e, 0x15, 0x42, 0xcd, 0xa5, 0x84, 0x78, - 0x1e, 0xbd, 0x37, 0xf9, 0x7b, 0x02, 0x81, 0xa7, 0xa6, 0xf3, 0xc5, 0x7b, 0x13, 0xdf, 0xc3, 0xe2, - 0x14, 0x13, 0xeb, 0x39, 0x5b, 0x6f, 0x65, 0xea, 0x11, 0x16, 0x59, 0xaa, 0x9d, 0xd4, 0x98, 0x10, - 0xdc, 0x20, 0xd0, 0x15, 0xe9, 0x0d, 0x7b, 0xad, 0x44, 0xaf, 0x78, 0x86, 0xa6, 0x38, 0x9e, 0xc5, - 0x80, 0x02, 0x04, 0x84, 0x08, 0x14, 0x6a, 0x56, 0xe0, 0x8b, 0x9e, 0x02, 0xcd, 0xe3, 0x44, 0x88, - 0x22, 0xb6, 0x38, 0x28, 0xc8, 0x70, 0xb1, 0xc9, 0x48, 0x21, 0x19, 0x32, 0x3a, 0xc7, 0x18, 0x52, - 0xae, 0x08, 0x50, 0x6d, 0x01, 0x6a, 0x30, 0xd0, 0x6c, 0x81, 0xc5, 0xba, 0x46, 0xcc, 0x48, 0xb3, - 0xa3, 0xce, 0x79, 0xed, 0xc4, 0xba, 0xe9, 0x9c, 0x3d, 0xb3, 0x55, 0xe2, 0x26, 0x87, 0x88, 0xe2, - 0xc8, 0x35, 0x2f, 0x33, 0xb2, 0xc5, 0x4a, 0x63, 0x20, 0xb5, 0x2c, 0xd3, 0xf5, 0x4d, 0xbf, 0x35, - 0x1d, 0x81, 0xb7, 0x2f, 0xb0, 0x2d, 0x3a, 0xd0, 0x83, 0xa9, 0xa7, 0xbb, 0x61, 0x31, 0xb9, 0xf8, - 0x3c, 0xe7, 0x2f, 0x18, 0x12, 0xf8, 0x71, 0x4f, 0xa9, 0x2d, 0xc5, 0x14, 0x86, 0x80, 0x85, 0xc5, - 0x68, 0xcd, 0xba, 0x47, 0x83, 0x29, 0x1e, 0xb8, 0x8a, 0xd7, 0xb0, 0xf9, 0xa2, 0x4b, 0x93, 0xf5, - 0x18, 0x95, 0x2e, 0xd0, 0x45, 0xa7, 0xcb, 0xd8, 0x51, 0xc7, 0x8b, 0xa0, 0x64, 0x8e, 0xa7, 0x38, - 0x40, 0xf9, 0x5d, 0x08, 0x1e, 0x96, 0x8a, 0x9a, 0x23, 0x1c, 0xe6, 0xea, 0x3c, 0xf1, 0x86, 0x3d, - 0x9d, 0x1d, 0x12, 0x8b, 0xfe, 0x2b, 0x56, 0xe4, 0xb0, 0x88, 0x97, 0xbf, 0xe3, 0x99, 0x60, 0xda, - 0x78, 0x1a, 0x8c, 0xcf, 0xa4, 0x16, 0x57, 0xa9, 0x2a, 0x8a, 0x43, 0xe8, 0x12, 0x7b, 0x4e, 0xb4, - 0xeb, 0x51, 0x17, 0xec, 0x1c, 0xf0, 0x4d, 0x3c, 0x25, 0xcb, 0x5c, 0xc7, 0x37, 0xf9, 0xe4, 0x11, - 0xb4, 0x63, 0x47, 0x05, 0x8c, 0xaf, 0x92, 0x94, 0xb1, 0x8b, 0xe6, 0x89, 0x93, 0x2d, 0xfc, 0xe2, - 0xb9, 0x7f, 0x37, 0xcc, 0xdf, 0x8f, 0xad, 0x56, 0x74, 0xe9, 0xfe, 0xea, 0xf2, 0xb0, 0xb0, 0xa5, - 0xec, 0x00, 0x98, 0x00, 0xd8, 0xc6, 0x0d, 0x90, 0x20, 0x70, 0x9b, 0xa5, 0xd2, 0x74, 0x3a, 0x2d, - 0x4e, 0xab, 0x45, 0xc7, 0x1b, 0x96, 0x2a, 0x60, 0xf1, 0xb0, 0xa2, 0xc4, 0xb7, 0x1e, 0x34, 0xa9, - 0xaa, 0x4a, 0x62, 0x71, 0x9e, 0x3f, 0xf3, 0x6b, 0x51, 0xf7, 0x9a, 0xa4, 0x12, 0x95, 0x54, 0xf1, - 0x7f, 0x52, 0x7b, 0xc7, 0xd5, 0x83, 0x11, 0x81, 0xc8, 0xed, 0x7d, 0x9d, 0x6c, 0x16, 0xeb, 0xa3, - 0x8a, 0x0a, 0x0f, 0x65, 0xf1, 0x5b, 0xa9, 0x30, 0x08, 0x6e, 0xab, 0x78, 0xce, 0x2d, 0xee, 0xf2, - 0xa1, 0xae, 0x44, 0xaf, 0x05, 0xd1, 0x4d, 0x2d, 0x06, 0x20, 0xeb, 0xfa, 0xba, 0xab, 0x49, 0x6c, - 0x68, 0x52, 0x09, 0x57, 0xeb, 0xef, 0x86, 0xed, 0x0d, 0x39, 0x61, 0xda, 0xa2, 0x6d, 0xa8, 0x2a, - 0x30, 0x32, 0x71, 0x06, 0x6c, 0x2b, 0x7a, 0x9d, 0xf2, 0xf2, 0x4d, 0x55, 0x0d, 0xb3, 0xd6, 0x71, - 0x8b, 0x51, 0x20, 0x3a, 0xef, 0x39, 0x68, 0x45, 0x74, 0x03, 0x74, 0xd9, 0xb4, 0xd1, 0x73, 0xab, - 0xa4, 0x50, 0x77, 0xef, 0xe1, 0xe7, 0x87, 0xc6, 0xd6, 0x20, 0x4c, 0xac, 0x6b, 0x46, 0xa6, 0xa1, - 0x0e, 0x8e, 0x03, 0x1a, 0x8c, 0xde, 0x54, 0x36, 0xc3, 0xef, 0xc5, 0x3b, 0x70, 0x0f, 0x45, 0xbb, - 0xdc, 0x68, 0xa1, 0xcc, 0x9a, 0x54, 0xf1, 0x74, 0xe6, 0xa0, 0x16, 0x66, 0xaf, 0x96, 0x26, 0x88, - 0x5a, 0x31, 0xcd, 0x40, 0x4b, 0x2d, 0xa3, 0xd9, 0x7a, 0xd4, 0x2c, 0xa3, 0x95, 0xad, 0x46, 0x8e, - 0xca, 0xfc, 0x4a, 0x70, 0x6c, 0xa5, 0x5a, 0x8f, 0xb6, 0xc6, 0x8e, 0xe5, 0x45, 0x96, 0x01, 0x5a, - 0xf2, 0x1d, 0x0b, 0xe2, 0x26, 0x46, 0x62, 0x2b, 0x65, 0x6f, 0x56, 0x4f, 0x38, 0xfd, 0xa9, 0x6e, - 0x12, 0xb0, 0x7c, 0x49, 0xdc, 0x59, 0x3d, 0x3a, 0xd3, 0x54, 0x45, 0x3c, 0x5f, 0x50, 0xdd, 0x38, - 0xb3, 0xad, 0x99, 0x56, 0x5e, 0x40, 0x7c, 0xbc, 0x02, 0x6c, 0x68, 0x95, 0x08, 0xd2, 0x75, 0x4d, - 0xad, 0x1a, 0xbd, 0x1c, 0xd9, 0x77, 0x60, 0xa4, 0x0c, 0x2d, 0xbe, 0x54, 0xd4, 0x12, 0x87, 0x74, - 0x78, 0xa7, 0x73, 0x16, 0x4b, 0xe1, 0x7d, 0xda, 0xc4, 0x41, 0x1d, 0xca, 0xcf, 0x3e, 0xeb, 0x78, - 0x3b, 0x27, 0x23, 0xfc, 0x0a, 0xa8, 0x1f, 0xe4, 0x24, 0xfc, 0x2b, 0xc9, 0x0a, 0x2d, 0xda, 0xab, - 0x97, 0x88, 0xf5, 0xe7, 0x2e, 0x11, 0xeb, 0x99, 0x97, 0x88, 0x8b, 0xb6, 0x3c, 0xd7, 0xf3, 0xda, - 0xd2, 0x65, 0xab, 0x40, 0x4e, 0xdd, 0x8b, 0x0e, 0x45, 0xcb, 0x80, 0x28, 0xed, 0xb8, 0x1e, 0x6d, - 0x4b, 0xf9, 0xe5, 0xdb, 0x63, 0x0a, 0xbb, 0xb3, 0x58, 0x91, 0xf3, 0xd2, 0x4e, 0x89, 0x61, 0x28, - 0x7a, 0xb8, 0x1c, 0x7d, 0x89, 0xa3, 0xe4, 0xcb, 0x63, 0x9b, 0xea, 0xd6, 0xed, 0xe5, 0x08, 0x34, - 0x6f, 0xc8, 0x6f, 0x59, 0xa7, 0x2f, 0xb7, 0x98, 0x83, 0xdc, 0xd2, 0x4d, 0x1e, 0x71, 0x9b, 0x02, - 0x2f, 0x20, 0x46, 0x07, 0xbd, 0xf9, 0x2f, 0xde, 0xdc, 0x54, 0xf8, 0x1d, 0x9f, 0x08, 0x69, 0xf9, - 0x16, 0x19, 0x4d, 0xdf, 0x22, 0x9b, 0x33, 0xac, 0xa6, 0xc0, 0x0e, 0xe5, 0x30, 0x64, 0xdc, 0x95, - 0x43, 0xc6, 0x6f, 0xa8, 0x1e, 0x2e, 0x2e, 0x27, 0xc2, 0x1b, 0x2d, 0xf2, 0x55, 0x0a, 0x71, 0xb9, - 0x12, 0xaf, 0x2a, 0x21, 0xe0, 0x75, 0x7c, 0xad, 0xbe, 0x19, 0x5f, 0xb7, 0x8c, 0xcb, 0xa4, 0x2b, - 0x80, 0x48, 0x4d, 0xa9, 0x3b, 0xf3, 0x61, 0xf2, 0x4a, 0xf1, 0x2d, 0x78, 0x08, 0xc7, 0xdd, 0x89, - 0x3f, 0xc2, 0xeb, 0xae, 0x19, 0xf9, 0x73, 0x9c, 0xf4, 0x89, 0x8b, 0xf0, 0x0b, 0x69, 0xf0, 0xf7, - 0x65, 0xd6, 0xca, 0xe1, 0x0a, 0x17, 0x41, 0x25, 0xb4, 0x45, 0x67, 0x89, 0xfb, 0xc8, 0x6c, 0x3b, - 0x3d, 0x52, 0x37, 0x16, 0x0b, 0x03, 0x8f, 0x75, 0x0d, 0xaf, 0x5f, 0x82, 0x16, 0x45, 0xa2, 0x66, - 0xb7, 0x98, 0x8b, 0x36, 0x70, 0x59, 0x34, 0x93, 0xd1, 0x01, 0x94, 0x63, 0x95, 0xb8, 0x4e, 0x18, - 0xa6, 0x2f, 0x61, 0xcf, 0xb3, 0x2b, 0xa6, 0xe4, 0xbb, 0x2a, 0xa0, 0xe5, 0x8b, 0xdc, 0x72, 0x18, - 0xdd, 0x11, 0x4c, 0x6a, 0xf9, 0x0b, 0x9a, 0x66, 0xf7, 0x81, 0x5d, 0xd3, 0x00, 0x91, 0xe2, 0xad, - 0xd5, 0x78, 0x6c, 0x14, 0xdb, 0x5c, 0xba, 0xb9, 0x2b, 0x18, 0x12, 0xb4, 0x02, 0x71, 0x33, 0xde, - 0xaf, 0x80, 0x0c, 0x33, 0x6e, 0x6d, 0xb3, 0x9b, 0xc0, 0xaf, 0x25, 0xb0, 0x2b, 0xae, 0x45, 0x41, - 0xae, 0x1c, 0xb9, 0xfa, 0x24, 0x32, 0xbb, 0x9c, 0xd2, 0x94, 0x86, 0x1e, 0x5e, 0xaa, 0x61, 0xb7, - 0xf0, 0x4c, 0x8d, 0xa5, 0xaa, 0x7b, 0xfc, 0xe0, 0x42, 0x4e, 0xaa, 0xe0, 0x8d, 0x2f, 0x4f, 0x7b, - 0xe2, 0x96, 0xf8, 0x8e, 0x56, 0x53, 0x5f, 0x57, 0x9a, 0x35, 0xc5, 0x7a, 0x0a, 0xab, 0xe4, 0x29, - 0x3e, 0xbf, 0x44, 0x0e, 0xce, 0x07, 0x46, 0xcf, 0xdc, 0x0d, 0x00, 0x69, 0x91, 0xbb, 0xc2, 0x52, - 0xce, 0xca, 0x57, 0x64, 0x98, 0x25, 0x5a, 0x59, 0xfd, 0xc9, 0x57, 0x1c, 0xcd, 0x82, 0xbf, 0x06, - 0xaf, 0x01, 0x91, 0x1a, 0xa8, 0x48, 0x54, 0xa9, 0x60, 0xcb, 0xa5, 0x0a, 0xe8, 0x26, 0x7e, 0x73, - 0xc2, 0x2c, 0xf6, 0x2d, 0xaa, 0x7b, 0x17, 0x78, 0xc1, 0x4e, 0x55, 0x54, 0x45, 0xa0, 0xc4, 0xad, - 0x02, 0x5a, 0xf1, 0x5e, 0x33, 0xe0, 0xef, 0x4c, 0xf3, 0x15, 0xb3, 0xd8, 0xa3, 0xe0, 0x52, 0xce, - 0xa1, 0xcd, 0x9c, 0x0c, 0x6f, 0x78, 0x5c, 0xa3, 0xcb, 0x8e, 0x4a, 0x04, 0xe2, 0x8d, 0x35, 0x04, - 0x55, 0xb0, 0x82, 0x62, 0x2b, 0x4e, 0x1a, 0x8b, 0x5d, 0xfd, 0xc1, 0x9b, 0x3c, 0x92, 0x52, 0xd1, - 0x34, 0xef, 0x75, 0xba, 0x4e, 0xbe, 0x5c, 0xac, 0x03, 0xcd, 0xaa, 0xb2, 0x09, 0x7f, 0xab, 0x3f, - 0xf9, 0x72, 0x73, 0xa9, 0xbc, 0x22, 0xca, 0xeb, 0xa2, 0x3c, 0xdd, 0x36, 0x9e, 0xc8, 0x7f, 0xaa, - 0x5d, 0xa0, 0x28, 0x0f, 0xb5, 0x58, 0xeb, 0x9b, 0x8f, 0xb6, 0x1e, 0x61, 0xd5, 0xf9, 0x7f, 0xf2, - 0xea, 0x98, 0x41, 0x44, 0x1a, 0x6b, 0x31, 0x2f, 0xa1, 0xcb, 0xc4, 0xf4, 0x4f, 0x4a, 0x53, 0xd2, - 0xb3, 0xc0, 0xe1, 0x22, 0x0c, 0x35, 0xa0, 0x83, 0x41, 0xad, 0x26, 0x89, 0x23, 0x17, 0x02, 0x11, - 0x37, 0xf0, 0x73, 0x8f, 0x69, 0x15, 0xb2, 0x3c, 0x1f, 0xd1, 0xd2, 0x40, 0x1a, 0x70, 0x50, 0x30, - 0x5d, 0xb3, 0x3b, 0x49, 0x0d, 0xa2, 0x21, 0xaa, 0x95, 0x2b, 0xf0, 0x50, 0x11, 0x63, 0x58, 0x61, - 0x14, 0x9d, 0xad, 0x54, 0xac, 0xb2, 0xd1, 0x3b, 0x05, 0xc6, 0x59, 0xc6, 0x5d, 0xa6, 0xcd, 0x13, - 0x4d, 0x5d, 0xfa, 0x36, 0x84, 0xc7, 0x3e, 0x05, 0x91, 0xfe, 0x04, 0x82, 0xc5, 0x3e, 0x74, 0xc0, - 0xa6, 0x19, 0xf3, 0x7e, 0xfe, 0xd4, 0xc4, 0xab, 0x8c, 0x19, 0x03, 0x8c, 0x3f, 0x1c, 0x31, 0xf9, - 0x0a, 0x1e, 0x03, 0x4f, 0x57, 0xa8, 0x4d, 0xa8, 0xb2, 0xb9, 0xa5, 0x94, 0x37, 0xab, 0x4a, 0x5d, - 0xfd, 0xda, 0x62, 0xa7, 0xbe, 0x5a, 0xac, 0xa8, 0x8c, 0x45, 0x95, 0x32, 0x94, 0x55, 0xb7, 0x95, - 0xda, 0x76, 0xaa, 0xac, 0x82, 0x65, 0xe5, 0x7a, 0x03, 0xea, 0x28, 0x95, 0x5a, 0x23, 0x2a, 0x33, - 0xb8, 0xe9, 0x64, 0x85, 0xdb, 0x15, 0xa5, 0xb6, 0xa5, 0x54, 0xb7, 0xbe, 0x86, 0xc9, 0xe1, 0xdf, - 0xb0, 0xe8, 0xfd, 0xc7, 0x39, 0x2e, 0x79, 0x84, 0x0a, 0xfe, 0x96, 0xc5, 0x6f, 0x85, 0xfd, 0xea, - 0x5f, 0x26, 0xf9, 0xfa, 0xd7, 0x50, 0xbe, 0x61, 0x3a, 0x9f, 0x0b, 0xf2, 0xc5, 0xba, 0x0c, 0xb2, - 0x5e, 0x56, 0x7e, 0x9c, 0x16, 0x2a, 0xbb, 0x70, 0x8a, 0xc2, 0xf9, 0xed, 0x37, 0xba, 0xa3, 0x95, - 0xd7, 0xd7, 0x6b, 0xa8, 0x7d, 0x39, 0x2a, 0xea, 0x18, 0xcd, 0x4a, 0xfa, 0x3d, 0xbf, 0xf5, 0x93, - 0xdf, 0x4c, 0xbc, 0xa2, 0xb4, 0xcc, 0xa2, 0xee, 0xf5, 0xe3, 0x29, 0x53, 0xac, 0x31, 0x0d, 0xaf, - 0xf0, 0xef, 0x43, 0x9c, 0x1f, 0x45, 0xa2, 0xcb, 0x3d, 0xa2, 0x88, 0x7f, 0x84, 0x1e, 0x4e, 0x14, - 0xd1, 0x7b, 0xde, 0x2f, 0xd5, 0x64, 0x65, 0x92, 0xcf, 0x87, 0xe1, 0xe2, 0x6a, 0xec, 0x8a, 0x15, - 0x9f, 0x0b, 0xe9, 0x72, 0x2f, 0xc8, 0xa5, 0xc8, 0x0e, 0xd5, 0x4a, 0x4d, 0x61, 0x85, 0xd9, 0xa7, - 0x5e, 0x00, 0x00, 0x86, 0xdd, 0xc4, 0x3c, 0x0a, 0x6f, 0xa0, 0x33, 0xac, 0xfe, 0x88, 0xf6, 0x6f, - 0x21, 0x88, 0x4d, 0x61, 0xee, 0x09, 0xe0, 0x0a, 0xb6, 0x87, 0x87, 0xd8, 0x53, 0xa8, 0x17, 0x08, - 0x59, 0xc1, 0x13, 0xf7, 0xeb, 0x92, 0x88, 0xbb, 0x0c, 0xb4, 0x82, 0x29, 0x6e, 0x91, 0x25, 0x31, - 0xf9, 0x21, 0x86, 0x15, 0x4c, 0xd7, 0x73, 0x86, 0x78, 0xed, 0x20, 0x85, 0x7b, 0x2e, 0x80, 0xab, - 0xe3, 0xd2, 0x21, 0x2e, 0x4c, 0xe3, 0xee, 0x31, 0xd0, 0x2a, 0x26, 0x18, 0x62, 0xa3, 0xba, 0x9f, - 0x46, 0xe5, 0xb0, 0x15, 0x5c, 0x96, 0x83, 0xa6, 0x99, 0x8a, 0x90, 0x24, 0x5e, 0xa4, 0xee, 0x09, - 0x9c, 0x44, 0x71, 0x18, 0xf2, 0xe8, 0x34, 0x02, 0xb1, 0xdb, 0x7e, 0x90, 0xd7, 0xb3, 0x93, 0x45, - 0x54, 0xf8, 0xf0, 0x3b, 0x51, 0xa8, 0x89, 0x78, 0x04, 0xf7, 0xc9, 0xd9, 0xe7, 0x31, 0x52, 0xa5, - 0xe8, 0x6c, 0xf3, 0x52, 0x51, 0xca, 0xa7, 0xa1, 0xa6, 0x21, 0x87, 0xc9, 0x50, 0x57, 0xbb, 0x11, - 0x37, 0x1f, 0xf9, 0x22, 0xfe, 0xcb, 0x9a, 0x08, 0x25, 0x12, 0x6f, 0x11, 0xa5, 0x8a, 0xf8, 0x86, - 0x51, 0xb4, 0xa3, 0xf0, 0x48, 0xa9, 0xb8, 0x55, 0xb9, 0x5c, 0xca, 0xc3, 0xbe, 0xc5, 0x15, 0xc8, - 0x9b, 0x28, 0x2c, 0xc2, 0x6b, 0xc2, 0xd1, 0x7d, 0x48, 0x71, 0xb4, 0x80, 0xdf, 0x13, 0xfe, 0x71, - 0x1e, 0x5d, 0xb7, 0x5f, 0x1d, 0x63, 0x74, 0x97, 0x38, 0x5d, 0xf1, 0xc7, 0x39, 0x0d, 0x97, 0x9a, - 0x72, 0xdb, 0x37, 0x4a, 0xc0, 0x1c, 0x2b, 0xc6, 0x58, 0x8e, 0x7d, 0x75, 0xa4, 0x7d, 0x79, 0x19, - 0x17, 0xbe, 0x26, 0x83, 0xc5, 0xe4, 0xd7, 0x21, 0x02, 0xf1, 0x59, 0x8a, 0x18, 0x97, 0xc7, 0xf5, - 0x37, 0xf1, 0x11, 0xb9, 0x17, 0xf3, 0xf9, 0x97, 0xc5, 0x91, 0x65, 0x1b, 0x2a, 0x4b, 0xed, 0x9b, - 0x85, 0x6d, 0x8f, 0xbf, 0x0a, 0xb2, 0xd4, 0xcd, 0x6a, 0x10, 0x97, 0x4a, 0x1f, 0x58, 0xde, 0xc0, - 0xb6, 0x62, 0xa4, 0x38, 0x95, 0xc8, 0xf8, 0xb8, 0x44, 0xac, 0x59, 0x22, 0x74, 0x63, 0xdc, 0x8c, - 0x24, 0x12, 0x17, 0xe2, 0x67, 0x53, 0xc0, 0x3c, 0x9d, 0xe2, 0x63, 0xfa, 0x18, 0x9c, 0xc4, 0x2a, - 0x48, 0x72, 0x4b, 0x7f, 0xad, 0x2f, 0x8e, 0xc0, 0x69, 0xa2, 0xa1, 0x66, 0x66, 0x0b, 0xf1, 0x76, - 0x0f, 0xb0, 0x2a, 0x92, 0xb0, 0xa8, 0x10, 0xcb, 0xf3, 0x26, 0xff, 0x74, 0xd5, 0xf0, 0x1f, 0xca, - 0x51, 0xd6, 0xd7, 0xf9, 0xeb, 0xa2, 0x0f, 0x01, 0xce, 0x2d, 0x41, 0xe2, 0xa4, 0x06, 0xe2, 0x2e, - 0x71, 0xd1, 0xed, 0x7b, 0x98, 0x23, 0xaa, 0x20, 0x7b, 0x7e, 0xfb, 0x0d, 0x82, 0xfa, 0xfe, 0x41, - 0x02, 0xa6, 0x64, 0xb6, 0x00, 0x79, 0x0d, 0xb5, 0x8d, 0x3d, 0x3c, 0x8a, 0x9a, 0x83, 0x30, 0x5f, - 0x49, 0x73, 0x55, 0x54, 0x0e, 0x99, 0xac, 0xf0, 0xf2, 0x90, 0xa0, 0xa6, 0xa5, 0x6b, 0xdf, 0xf1, - 0x09, 0x31, 0xf1, 0xad, 0x2c, 0xa9, 0x79, 0x23, 0x16, 0x99, 0x32, 0x2e, 0x32, 0x8b, 0x4f, 0x0a, - 0x85, 0x25, 0xec, 0xa5, 0x74, 0xa3, 0x2c, 0x7f, 0x88, 0x41, 0x57, 0x38, 0x01, 0xe9, 0x29, 0xa0, - 0x2c, 0xa5, 0xc7, 0x1c, 0x27, 0xf9, 0xe9, 0x1d, 0x5d, 0x16, 0x15, 0x8b, 0x60, 0x13, 0xb5, 0x57, - 0x6a, 0xea, 0x73, 0x09, 0x52, 0x42, 0x41, 0xf9, 0xdd, 0x28, 0xb1, 0x69, 0x27, 0xb1, 0x7c, 0x42, - 0xd4, 0x64, 0xf9, 0xc9, 0x52, 0xde, 0x43, 0xb5, 0x0d, 0x89, 0x49, 0x4a, 0x6a, 0x6e, 0xe4, 0x57, - 0x3f, 0xe3, 0x34, 0x97, 0xc4, 0xcd, 0x65, 0x0a, 0xd3, 0x42, 0x21, 0x92, 0x9c, 0x9e, 0xd3, 0x8b, - 0x59, 0x91, 0xa0, 0xf4, 0x66, 0xfe, 0x1d, 0x86, 0xb2, 0x39, 0x47, 0x9b, 0x13, 0x0b, 0xb7, 0x09, - 0x55, 0x53, 0x14, 0x14, 0x03, 0xa7, 0xcb, 0x32, 0xf7, 0x5c, 0xb5, 0x21, 0x17, 0x7d, 0x5c, 0x33, - 0xc9, 0x55, 0xe4, 0x50, 0x0a, 0xc3, 0x1b, 0x39, 0x76, 0x07, 0x49, 0xd7, 0x4c, 0xe0, 0x19, 0x14, - 0x21, 0xe1, 0x23, 0x96, 0xf2, 0x3c, 0x7f, 0xe2, 0x02, 0xed, 0x29, 0xe0, 0x4d, 0xc4, 0x82, 0x97, - 0xf6, 0x7e, 0x13, 0x77, 0xbd, 0xec, 0xeb, 0x57, 0xbb, 0x4f, 0x7d, 0xe9, 0x41, 0x58, 0x14, 0x4e, - 0x43, 0xa2, 0xe4, 0xff, 0xdd, 0xcb, 0xc4, 0x6e, 0x24, 0x79, 0x94, 0x98, 0x87, 0x33, 0x63, 0xf6, - 0x35, 0x03, 0x71, 0x9e, 0xf8, 0x46, 0x5e, 0x36, 0x7e, 0x9c, 0xf6, 0x34, 0x70, 0x31, 0x25, 0x23, - 0x0b, 0x91, 0x65, 0x19, 0x58, 0xeb, 0xd4, 0x88, 0xca, 0x12, 0xf3, 0x18, 0x0f, 0xb0, 0x40, 0x10, - 0x07, 0x79, 0x20, 0x30, 0x44, 0x2b, 0x94, 0xb5, 0xd8, 0x7e, 0x84, 0xcf, 0x4b, 0x2f, 0xa1, 0xc0, - 0xe9, 0xcf, 0x9f, 0xed, 0x14, 0xab, 0xd5, 0xd7, 0x85, 0x72, 0x73, 0x09, 0xd8, 0x68, 0xbc, 0x56, - 0x9b, 0xe5, 0x85, 0xf6, 0xa4, 0x62, 0xb0, 0x7f, 0x22, 0xf9, 0x01, 0x37, 0x34, 0x49, 0x85, 0x5f, - 0xfd, 0x5e, 0x93, 0x2a, 0xf5, 0xfa, 0xf7, 0x49, 0xf4, 0xfb, 0xfc, 0xa8, 0x77, 0x17, 0x1f, 0x97, - 0x5c, 0x0a, 0x38, 0xbe, 0x4b, 0x0f, 0x5a, 0xdc, 0xc4, 0xbf, 0x3c, 0xd8, 0xca, 0x4b, 0xd8, 0x35, - 0x98, 0xf9, 0x55, 0xbd, 0x49, 0x1b, 0xf0, 0xdf, 0xa3, 0x0d, 0xa9, 0x0f, 0xd4, 0xd5, 0x97, 0x2c, - 0x5b, 0x2c, 0xfe, 0x74, 0x64, 0xfd, 0x67, 0x99, 0xbf, 0x8b, 0x28, 0xf1, 0xf1, 0x18, 0x2f, 0x19, - 0x2b, 0xbe, 0x80, 0x73, 0xf8, 0xb5, 0x0d, 0xc1, 0x93, 0x74, 0x0e, 0xf1, 0xbb, 0x79, 0x22, 0x3e, - 0x50, 0xf3, 0x9d, 0x4c, 0x11, 0xe3, 0x16, 0xa9, 0x4d, 0x3b, 0xfe, 0x24, 0xc9, 0xaa, 0x0a, 0xe2, - 0xc7, 0xb7, 0x5e, 0x68, 0x8d, 0xf8, 0x77, 0x4e, 0x7c, 0x91, 0x22, 0xd8, 0xe9, 0x70, 0x4a, 0x7c, - 0x6e, 0x4a, 0x4f, 0x2c, 0x0d, 0x88, 0x15, 0xe7, 0xa8, 0x5a, 0x46, 0x2d, 0x0c, 0x58, 0x53, 0xdf, - 0x55, 0x81, 0x4c, 0x1b, 0x12, 0x4d, 0x9c, 0x46, 0x61, 0xfc, 0x5d, 0x95, 0x9b, 0xd6, 0x72, 0x60, - 0x94, 0x35, 0xc7, 0x32, 0x97, 0x22, 0x39, 0xfd, 0xf8, 0x95, 0xbf, 0x84, 0x01, 0x85, 0xe8, 0xe6, - 0x94, 0x1d, 0xfb, 0xe5, 0xc7, 0x23, 0xd6, 0xd7, 0x33, 0x67, 0x80, 0xa0, 0x5a, 0x6a, 0x7e, 0x91, - 0xa8, 0x69, 0x4b, 0x8a, 0xf4, 0x30, 0xa5, 0xf8, 0x39, 0x15, 0xc3, 0x83, 0x9f, 0xaf, 0x1b, 0xb2, - 0xf2, 0xdd, 0x56, 0x54, 0xcd, 0x30, 0xa2, 0xe5, 0x66, 0x65, 0x31, 0x8b, 0x96, 0x33, 0xc9, 0xdf, - 0xad, 0x33, 0x51, 0x9e, 0xca, 0xcd, 0xde, 0xb2, 0xda, 0x00, 0x30, 0x94, 0x7e, 0xa7, 0x42, 0xc5, - 0x19, 0x70, 0x1b, 0x97, 0xfd, 0xf9, 0x73, 0x3b, 0xe1, 0xc9, 0x53, 0xf9, 0xed, 0xcb, 0xe8, 0x4f, - 0x77, 0x86, 0x31, 0x56, 0xe4, 0xf0, 0x52, 0x40, 0x11, 0xb2, 0x45, 0x7c, 0x4f, 0x8d, 0x97, 0x67, - 0xda, 0xbf, 0x73, 0x48, 0x8f, 0x7a, 0x02, 0xde, 0xea, 0x0b, 0xad, 0xf6, 0x13, 0xea, 0x87, 0xd3, - 0x47, 0xd3, 0xb2, 0x86, 0x99, 0xa9, 0x42, 0x58, 0x04, 0x51, 0xd4, 0xe1, 0x2f, 0xe0, 0x32, 0xa8, - 0x55, 0xb9, 0xaf, 0x14, 0xca, 0x8d, 0xfb, 0x72, 0x83, 0x7f, 0x57, 0xf6, 0x19, 0xbd, 0x93, 0xec, - 0x92, 0x0e, 0x38, 0x71, 0x4c, 0x97, 0x5c, 0x19, 0xf8, 0xdd, 0xda, 0xc4, 0x4f, 0xe9, 0xfd, 0xc1, - 0xcc, 0x65, 0x8d, 0xbe, 0xcc, 0xa6, 0x3e, 0x36, 0xba, 0xa5, 0x15, 0x92, 0xdf, 0x6f, 0x61, 0xbf, - 0xdb, 0xd5, 0x3f, 0x3b, 0xbc, 0xe4, 0x87, 0x9e, 0xec, 0xc9, 0xb8, 0x87, 0x77, 0xd5, 0xd8, 0x77, - 0x99, 0x46, 0x8e, 0x65, 0x50, 0x4f, 0x93, 0xee, 0x71, 0xff, 0xfa, 0x59, 0xac, 0xd9, 0x8b, 0xb0, - 0x1e, 0xf8, 0x5e, 0xf8, 0x1f, 0x1f, 0x69, 0x46, 0x86, 0x12, 0x72, 0xd8, 0x74, 0x46, 0x5a, 0xbc, - 0x57, 0x32, 0xf1, 0xca, 0xcb, 0x78, 0xb3, 0x6c, 0xbc, 0xca, 0x32, 0xde, 0xc3, 0x4b, 0xf4, 0x20, - 0xce, 0x30, 0xe6, 0xc0, 0xbe, 0xe6, 0x8f, 0xf3, 0x6a, 0x43, 0x4d, 0xc7, 0x23, 0x21, 0x24, 0x57, - 0xb3, 0x47, 0x4b, 0x1e, 0xb2, 0x4b, 0xc2, 0x9b, 0xec, 0xaf, 0x46, 0xb1, 0xa5, 0x80, 0xf4, 0x49, - 0x9c, 0x86, 0x7b, 0x2f, 0x0e, 0x7d, 0x81, 0xc0, 0x73, 0xa9, 0x6f, 0xd2, 0xc8, 0xa1, 0xc8, 0xbe, - 0xe6, 0xfc, 0xd8, 0x01, 0xb6, 0xd1, 0x34, 0x03, 0x1d, 0xb2, 0x9d, 0xe8, 0xa0, 0x8f, 0x45, 0x07, - 0xab, 0x4d, 0xa4, 0x3e, 0x60, 0x23, 0x87, 0x4c, 0xd6, 0xc9, 0x83, 0x66, 0x2a, 0x51, 0x53, 0xf8, - 0x8b, 0xaf, 0x97, 0xc8, 0x89, 0x03, 0x0e, 0xec, 0x3c, 0x10, 0x2e, 0xde, 0xcc, 0x93, 0x7d, 0x55, - 0xd4, 0xec, 0x3d, 0xfa, 0x78, 0x11, 0x37, 0xde, 0xc6, 0x14, 0x93, 0x43, 0xda, 0xa7, 0x63, 0x47, - 0x5a, 0x2c, 0xf2, 0xa6, 0xbf, 0x8e, 0x3d, 0x5f, 0x29, 0xc8, 0xd9, 0xf1, 0xb4, 0x82, 0x6c, 0x03, - 0x3f, 0xe8, 0x99, 0xf1, 0x75, 0x41, 0xa1, 0xb9, 0xe6, 0x18, 0xff, 0x9f, 0x15, 0xc6, 0xba, 0x2b, - 0x2d, 0x4e, 0x2c, 0x0b, 0x20, 0xf8, 0xd8, 0xc4, 0x31, 0x77, 0x29, 0xc0, 0x5b, 0xc9, 0x00, 0x92, - 0xa2, 0x6f, 0x8e, 0x4c, 0x6c, 0xf7, 0x76, 0xc8, 0x3e, 0x39, 0xc2, 0x8a, 0xfe, 0xaa, 0x16, 0xcb, - 0xf5, 0x46, 0xb1, 0x5c, 0xea, 0x4d, 0x40, 0xa1, 0x38, 0x4c, 0xec, 0x2d, 0x83, 0x8d, 0x94, 0x94, - 0xa5, 0x96, 0xf0, 0xc2, 0x23, 0xf8, 0xf1, 0xd2, 0x4b, 0x5a, 0x14, 0xf7, 0x8f, 0xfd, 0xd2, 0x37, - 0x7f, 0x5c, 0x92, 0xd2, 0x17, 0xbd, 0x48, 0x62, 0x64, 0x25, 0xf1, 0x7f, 0x5d, 0xc1, 0xbe, 0xb0, - 0xc1, 0x3e, 0xd7, 0x86, 0x9f, 0xd7, 0x20, 0x8e, 0x6d, 0x39, 0xba, 0x91, 0x3a, 0x1f, 0x1d, 0x7d, - 0x98, 0x1d, 0x4d, 0x1e, 0x22, 0xb5, 0x09, 0x70, 0x88, 0xfd, 0xff, 0x5f, 0xfc, 0x1f, 0xb3, 0xcb, - 0x14, 0xd5, 0x17, 0x63, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x7d, 0xdb, 0x7a, 0xdb, 0x38, + 0x93, 0xe0, 0xbd, 0x9f, 0x02, 0x61, 0x67, 0x6c, 0xb1, 0x45, 0x49, 0xd4, 0xd1, 0xb6, 0x64, 0x2a, + 0xbf, 0xec, 0xd8, 0x89, 0x73, 0x74, 0xfb, 0x90, 0xe3, 0xe6, 0x6b, 0x43, 0x22, 0x24, 0x31, 0xa6, + 0x48, 0x36, 0x49, 0x59, 0x96, 0xd5, 0x7c, 0x83, 0xb9, 0x9a, 0x6f, 0x2f, 0xf6, 0x6e, 0xae, 0xe7, + 0x9b, 0x77, 0x98, 0x8b, 0x79, 0x94, 0x7d, 0x82, 0x79, 0x84, 0xad, 0x02, 0x40, 0x8a, 0x94, 0xe8, + 0x43, 0x7a, 0xb3, 0xfb, 0x4d, 0x3b, 0xb1, 0x44, 0x02, 0x05, 0xa0, 0x50, 0x55, 0xa8, 0x03, 0x4e, + 0x26, 0x7b, 0x4f, 0x9e, 0xbf, 0x3f, 0x38, 0xff, 0x7c, 0x72, 0x48, 0xc6, 0xe1, 0xc4, 0xee, 0x92, + 0xbd, 0xf8, 0x8b, 0x51, 0x13, 0xbe, 0x26, 0x2c, 0xa4, 0x64, 0x30, 0xa6, 0x7e, 0xc0, 0x42, 0x43, + 0x99, 0x86, 0xc3, 0xd2, 0x8e, 0x92, 0x24, 0xbb, 0x4e, 0xc8, 0x1c, 0x48, 0x9e, 0xb3, 0x40, 0x21, + 0x1b, 0x0e, 0x9d, 0x30, 0x43, 0xa1, 0x9e, 0x67, 0xb3, 0xd2, 0xc4, 0xed, 0x5b, 0xf0, 0x35, 0x63, + 0xfd, 0x12, 0x24, 0x94, 0x06, 0xd4, 0xa3, 0x7d, 0x9b, 0x25, 0x25, 0x37, 0x92, 0xa2, 0x33, 0xcb, + 0x0c, 0xc7, 0x86, 0xc9, 0xae, 0xad, 0x01, 0x80, 0xe3, 0x8b, 0x66, 0x39, 0x56, 0x68, 0x51, 0xbb, + 0x14, 0x0c, 0xa8, 0xcd, 0x8c, 0xaa, 0x42, 0x44, 0xc5, 0xd7, 0x16, 0x9b, 0x79, 0xae, 0x1f, 0x2e, + 0x2b, 0x91, 0x0d, 0x4e, 0xc3, 0xb1, 0xeb, 0x2b, 0x4b, 0x6c, 0xde, 0xba, 0xae, 0xf3, 0xd6, 0x35, + 0xa7, 0x36, 0x0b, 0x08, 0x75, 0x4c, 0x62, 0x85, 0x01, 0xcf, 0xf4, 0xad, 0xfe, 0x34, 0x74, 0xfd, + 0x00, 0x2b, 0xb0, 0x2d, 0xe7, 0x8a, 0xf8, 0xcc, 0x36, 0x14, 0x0b, 0xb2, 0x00, 0xf9, 0xb1, 0xcf, + 0x86, 0x86, 0x62, 0xd2, 0x90, 0xb6, 0xad, 0x09, 0x1d, 0xb1, 0x8a, 0xe7, 0x8c, 0x3a, 0x7d, 0x1a, + 0xb0, 0x56, 0x43, 0xb3, 0x3e, 0xec, 0xbf, 0x3f, 0x9d, 0xe9, 0xaf, 0x5f, 0x8c, 0xdc, 0x1e, 0xfc, + 0xbc, 0x3b, 0xbb, 0x18, 0x1f, 0x5e, 0x8c, 0xe0, 0x69, 0x1f, 0x5f, 0x7b, 0xbf, 0x1d, 0xf4, 0x3e, + 0xe3, 0xf7, 0x70, 0xa7, 0xb2, 0x3b, 0xe6, 0x29, 0x9f, 0xde, 0x9d, 0x9d, 0xea, 0xc7, 0x3d, 0x3f, + 0x68, 0x0c, 0x5a, 0xbf, 0xc1, 0xfb, 0xe1, 0xa9, 0xfd, 0xf1, 0xd0, 0x9e, 0x9c, 0x5f, 0xe8, 0xbd, + 0xd7, 0x58, 0xae, 0x07, 0x1f, 0x9f, 0x4d, 0x0f, 0x8a, 0xf6, 0xe2, 0x5a, 0x5e, 0xf0, 0x74, 0xf8, + 0x69, 0xe1, 0xfb, 0x5b, 0x99, 0x7e, 0xd8, 0xeb, 0xbd, 0xee, 0x1d, 0xa4, 0xe1, 0x0e, 0x5f, 0xf7, + 0x9e, 0x67, 0xde, 0x45, 0x29, 0xfd, 0xc3, 0xa7, 0x97, 0x73, 0x4c, 0xab, 0x1d, 0xda, 0x87, 0xbf, + 0x7d, 0xf8, 0xad, 0x71, 0xf8, 0xf9, 0xc3, 0xd9, 0xf9, 0x45, 0xd8, 0xbf, 0x38, 0xed, 0xed, 0xee, + 0xdc, 0xbc, 0x3e, 0xb7, 0x5f, 0xec, 0x5f, 0xdc, 0x1e, 0x7e, 0x79, 0x7d, 0x74, 0xf1, 0x72, 0xdf, + 0x1e, 0x7c, 0xb0, 0x8e, 0xf6, 0xcd, 0xb3, 0x03, 0xfb, 0x15, 0x3d, 0xbb, 0x7a, 0x55, 0xff, 0xc4, + 0xfc, 0x83, 0xf0, 0xfc, 0xfa, 0xd3, 0xe9, 0x87, 0xf9, 0xab, 0x46, 0x6f, 0xc7, 0x7d, 0x13, 0xde, + 0x54, 0x9d, 0x79, 0x2f, 0xec, 0x5f, 0xb9, 0x9f, 0xfc, 0x8f, 0x07, 0xb6, 0x6b, 0xea, 0x7f, 0x1c, + 0x1d, 0x7f, 0xa2, 0xe3, 0xd3, 0x17, 0xfd, 0x8f, 0x2f, 0xde, 0xb1, 0xb3, 0x77, 0x4d, 0xbd, 0xe9, + 0x37, 0x4f, 0x4e, 0x1a, 0xc7, 0xcf, 0xb7, 0x77, 0xab, 0xb7, 0xcd, 0xe6, 0xec, 0xd6, 0xdc, 0x1e, + 0xd7, 0x0f, 0xf6, 0x6b, 0x07, 0xf3, 0xca, 0xd5, 0xa0, 0x76, 0x7d, 0x7e, 0xa0, 0x3f, 0x7f, 0x59, + 0x3c, 0xdb, 0x7f, 0x6f, 0xf7, 0xeb, 0xe6, 0xab, 0xd6, 0x47, 0x7a, 0x36, 0xbc, 0xbd, 0x39, 0x71, + 0x9b, 0x76, 0xeb, 0xa0, 0x11, 0x7c, 0x9a, 0xb1, 0xd1, 0xed, 0xc9, 0xfb, 0xc3, 0xc1, 0xf3, 0x89, + 0x6e, 0xe9, 0x1f, 0xac, 0xf1, 0xcd, 0xed, 0xf4, 0xd3, 0xc5, 0xa0, 0x58, 0xed, 0x39, 0xb7, 0xb3, + 0xb7, 0xee, 0xfb, 0xca, 0xce, 0xc5, 0xce, 0xe8, 0xe4, 0x78, 0xf2, 0xba, 0x17, 0xdc, 0x36, 0xbe, + 0x87, 0xdb, 0x1f, 0xdf, 0xde, 0xf8, 0xbb, 0x17, 0x27, 0xef, 0x6e, 0xed, 0x51, 0xe5, 0xed, 0x47, + 0xb7, 0x7a, 0x6d, 0x3e, 0x3f, 0xf3, 0x7f, 0xeb, 0x4d, 0xfd, 0x57, 0xe3, 0x57, 0xfb, 0xfb, 0xdb, + 0xf3, 0xe1, 0xad, 0xee, 0xbf, 0x19, 0xd6, 0x1b, 0xe6, 0xa7, 0xe0, 0xfc, 0xe4, 0xf5, 0xf7, 0xcf, + 0x93, 0x2f, 0xdb, 0xaf, 0x7b, 0x8d, 0xed, 0xf1, 0xd9, 0x7c, 0xe7, 0x4d, 0xb1, 0x3f, 0xfa, 0xb4, + 0x5b, 0x3b, 0x3b, 0x7b, 0x71, 0xba, 0xed, 0xf5, 0x2f, 0x26, 0x56, 0xef, 0xd5, 0x55, 0xf0, 0xe1, + 0xd5, 0xe0, 0xed, 0xfb, 0x17, 0xcf, 0xaf, 0xc6, 0xdf, 0x4f, 0x9c, 0xab, 0x69, 0xaf, 0x39, 0x7d, + 0x77, 0xf4, 0x7c, 0x58, 0xac, 0x1d, 0x17, 0x6f, 0xbe, 0xf8, 0xe7, 0xb3, 0x3f, 0xfe, 0x38, 0x1d, + 0xd5, 0x5f, 0x15, 0x0f, 0xeb, 0x87, 0xc3, 0x83, 0x93, 0xb7, 0xc7, 0x33, 0xcf, 0x3a, 0xff, 0x52, + 0x3c, 0x9f, 0x7d, 0x1c, 0x7f, 0x1a, 0xf4, 0xc7, 0x13, 0x3a, 0xb9, 0xfd, 0xfc, 0xba, 0x3f, 0xfb, + 0xf2, 0xfc, 0x0f, 0xf3, 0x45, 0xab, 0xb6, 0xdd, 0xeb, 0xed, 0x7c, 0xb8, 0x39, 0xec, 0x9d, 0x5d, + 0x9f, 0x8f, 0x2a, 0xe7, 0xba, 0xff, 0x7a, 0xf0, 0xfa, 0xcb, 0x59, 0x7f, 0x4c, 0xc3, 0x1d, 0xef, + 0x9d, 0x33, 0xec, 0x9d, 0x54, 0x2b, 0xd5, 0x59, 0xff, 0x4b, 0x71, 0x5e, 0x6c, 0xed, 0xb7, 0xb6, + 0xbf, 0x3b, 0xb7, 0xdb, 0xe3, 0x03, 0xdd, 0xb1, 0x8f, 0x1b, 0xbb, 0xd7, 0x0e, 0x90, 0xeb, 0x73, + 0xf8, 0xfe, 0xec, 0x4b, 0xf1, 0xb4, 0xe5, 0xeb, 0x93, 0xb9, 0xde, 0xf2, 0x0e, 0x47, 0x6f, 0xfc, + 0xca, 0xf4, 0xb4, 0x1f, 0xee, 0x7a, 0x07, 0x3b, 0xa3, 0x4f, 0xfb, 0x47, 0x87, 0x73, 0xdd, 0xd3, + 0x9f, 0xbf, 0xff, 0x52, 0x0d, 0x4e, 0x3f, 0x5e, 0xcd, 0x7b, 0xfb, 0x56, 0x70, 0xf6, 0xa2, 0xde, + 0xdb, 0x79, 0xb5, 0xfd, 0xea, 0xc8, 0xbb, 0x1d, 0xbc, 0xf1, 0x3f, 0xde, 0xbc, 0xfc, 0x4e, 0x75, + 0x3a, 0x87, 0x61, 0x72, 0xe6, 0xbf, 0x74, 0xed, 0xd1, 0x73, 0x67, 0x76, 0xbe, 0x5d, 0xfc, 0x38, + 0x9c, 0x4f, 0xdf, 0x7e, 0xfc, 0xf2, 0xa5, 0x72, 0x33, 0xd8, 0x6d, 0xd2, 0x51, 0xe3, 0xed, 0xc1, + 0xf9, 0x97, 0x8b, 0xe2, 0x69, 0xe5, 0x7d, 0xfd, 0xc0, 0x1a, 0x79, 0xbf, 0xdd, 0x7e, 0x3c, 0x1e, + 0xfb, 0xb5, 0xa3, 0xd3, 0xd7, 0x6f, 0x5e, 0x5a, 0xaf, 0xae, 0xdf, 0xbd, 0xb6, 0xdf, 0xbc, 0xda, + 0x3f, 0x9d, 0xb0, 0x46, 0x6b, 0xfc, 0x65, 0xe7, 0x73, 0xbd, 0xbe, 0xc3, 0xac, 0xef, 0x57, 0xd5, + 0x8f, 0xcd, 0xab, 0xdb, 0x97, 0x5e, 0x7f, 0x27, 0xbc, 0x7a, 0xd1, 0x9b, 0x1e, 0x7c, 0x98, 0x7d, + 0x3a, 0x61, 0x0d, 0x6f, 0x74, 0x70, 0x36, 0xb8, 0x39, 0xeb, 0xd9, 0x33, 0x76, 0x74, 0xd2, 0x2a, + 0x1e, 0x0c, 0xfd, 0x0f, 0x95, 0xf7, 0xcd, 0x8f, 0x2f, 0x5f, 0xd7, 0x1b, 0xb7, 0x95, 0xa6, 0x4e, + 0x8f, 0x07, 0xe3, 0xdf, 0x5e, 0xee, 0x37, 0x85, 0x68, 0xbe, 0x3a, 0xbd, 0x68, 0x1e, 0xfa, 0x57, + 0xaf, 0x46, 0xa3, 0x91, 0x61, 0x28, 0xdd, 0x0d, 0xb2, 0x17, 0x0c, 0x7c, 0xcb, 0x0b, 0xbb, 0x95, + 0x0a, 0xf9, 0x87, 0x0d, 0x63, 0xdd, 0x09, 0x18, 0x21, 0xe4, 0xc5, 0xbb, 0x0b, 0xf2, 0xe2, 0xf0, + 0xdd, 0xe1, 0x69, 0xef, 0x0d, 0x39, 0xb9, 0xd8, 0x7f, 0x73, 0x7c, 0x40, 0xe0, 0xf7, 0xf0, 0xdd, + 0xd9, 0x21, 0xf9, 0xc0, 0xfc, 0xc0, 0x72, 0x1d, 0x52, 0xd7, 0x48, 0x6d, 0x97, 0xbc, 0x9a, 0x3a, + 0x8c, 0xd4, 0x74, 0x7d, 0x7b, 0x23, 0x5b, 0xc1, 0x91, 0xeb, 0x13, 0x07, 0xa0, 0x5e, 0x9c, 0xbc, + 0x29, 0x5d, 0xd7, 0xc9, 0x34, 0x80, 0xa1, 0xab, 0xc1, 0x68, 0x9f, 0x4c, 0x98, 0x3f, 0x00, 0x25, + 0x42, 0x24, 0x68, 0x40, 0x26, 0xd3, 0x20, 0x24, 0x7d, 0x46, 0xbc, 0xa9, 0x0f, 0xea, 0x2c, 0x60, + 0x66, 0x99, 0x1c, 0x80, 0x52, 0xa0, 0x83, 0x90, 0x4c, 0x40, 0x61, 0x4c, 0x84, 0xc2, 0xf8, 0x87, + 0x35, 0xb0, 0xdd, 0xa9, 0x59, 0x86, 0x1a, 0x36, 0x06, 0x36, 0x0d, 0x02, 0x0e, 0xe4, 0xbb, 0xb6, + 0xcd, 0xfc, 0xc5, 0x2c, 0x30, 0x9c, 0xa9, 0x6d, 0x77, 0x82, 0x79, 0x70, 0xec, 0x0c, 0x5d, 0x63, + 0x11, 0x75, 0x64, 0x31, 0x91, 0x1e, 0x8e, 0x19, 0x28, 0x24, 0xfe, 0x38, 0xa1, 0x96, 0xf3, 0x8e, + 0x5e, 0x8b, 0x17, 0xd7, 0x79, 0xe3, 0x52, 0xb3, 0xa0, 0x2e, 0x4c, 0x77, 0x30, 0x9d, 0x80, 0x8e, + 0x2a, 0x87, 0x56, 0x08, 0xaa, 0x0d, 0x34, 0xe3, 0x3b, 0x50, 0x61, 0x05, 0xb5, 0xa8, 0xfc, 0xd7, + 0xbf, 0xfe, 0xcb, 0xbf, 0x93, 0xfe, 0x9c, 0xa4, 0x75, 0xd7, 0x7f, 0xfd, 0xeb, 0x3f, 0xff, 0x4f, + 0x45, 0x9b, 0x59, 0x8e, 0xe9, 0xce, 0xca, 0xb6, 0x3b, 0xa0, 0x21, 0xd0, 0xa3, 0x8c, 0x8a, 0xaa, + 0x6c, 0x39, 0x03, 0x7b, 0x6a, 0xb2, 0xa0, 0xa0, 0x54, 0x6b, 0xdb, 0x65, 0x1d, 0xfe, 0x55, 0x15, + 0xf5, 0x59, 0x38, 0xb6, 0x82, 0xf2, 0x90, 0x85, 0x83, 0x31, 0x54, 0xc1, 0x6c, 0xa0, 0xcd, 0x1b, + 0xeb, 0x9a, 0x9d, 0x31, 0xff, 0x9a, 0xf9, 0x05, 0xb5, 0xcd, 0xb3, 0x27, 0xf4, 0x8a, 0x7d, 0x3c, + 0x2b, 0xa8, 0x9a, 0x78, 0x8b, 0xd1, 0x67, 0x33, 0x22, 0x9b, 0xd5, 0x46, 0xc7, 0x66, 0x41, 0xe9, + 0xbb, 0xe6, 0x5c, 0x51, 0xa1, 0x1d, 0x87, 0xf9, 0x2f, 0xcf, 0xdf, 0xbe, 0x29, 0x1a, 0xca, 0xde, + 0xb8, 0xda, 0x3d, 0x0b, 0x29, 0xd4, 0x39, 0x1a, 0x87, 0x04, 0x11, 0xde, 0xab, 0x40, 0x92, 0x22, + 0x6a, 0x92, 0x7d, 0x87, 0x7a, 0xce, 0xf1, 0x29, 0x95, 0x58, 0x1e, 0xf8, 0x8c, 0x86, 0x0c, 0x6b, + 0x89, 0x9b, 0x15, 0xe9, 0x23, 0x16, 0x72, 0xd8, 0x04, 0x99, 0x98, 0x66, 0x88, 0x8c, 0x78, 0x2e, + 0xa4, 0xb1, 0xc4, 0x6f, 0x66, 0x67, 0x81, 0xb3, 0x95, 0x4f, 0x03, 0xe6, 0x1f, 0x4d, 0x9d, 0x33, + 0x16, 0x4e, 0xbd, 0x82, 0x1a, 0xd1, 0x60, 0xee, 0x0c, 0xc8, 0x9d, 0x04, 0x59, 0xd8, 0x2c, 0x24, + 0xc0, 0x85, 0x19, 0xb5, 0xc2, 0x02, 0xff, 0x14, 0xb0, 0x05, 0xa5, 0x32, 0xb1, 0x82, 0x41, 0x85, + 0x37, 0x57, 0xfe, 0x1e, 0x80, 0x7d, 0x50, 0x55, 0xfe, 0x5d, 0x50, 0x3b, 0xac, 0x1c, 0x80, 0x0d, + 0x2a, 0x14, 0x86, 0x53, 0x67, 0x80, 0xfc, 0x28, 0x40, 0x57, 0xd5, 0x85, 0x0f, 0x2d, 0xfa, 0x0e, + 0x60, 0x1d, 0x8e, 0xcb, 0xb4, 0x1f, 0x14, 0x58, 0xd9, 0x55, 0x4b, 0xc9, 0x5b, 0x08, 0x6f, 0x91, + 0xaa, 0x76, 0x86, 0xae, 0x5f, 0xc0, 0x36, 0x43, 0xe2, 0x0e, 0x09, 0x53, 0x33, 0x7d, 0xa3, 0xa6, + 0x29, 0x18, 0x50, 0x08, 0xd5, 0x0e, 0x07, 0x32, 0x16, 0x52, 0xce, 0xda, 0x8b, 0x28, 0xea, 0x84, + 0x65, 0xf9, 0x56, 0xee, 0xbb, 0xd4, 0x37, 0x0d, 0x85, 0x05, 0x5e, 0xbd, 0x06, 0xc4, 0x4f, 0xd2, + 0x1d, 0xff, 0xfd, 0xf0, 0xc4, 0x72, 0x02, 0xa3, 0xa1, 0xa7, 0x52, 0x3d, 0xcb, 0x39, 0x9f, 0x7b, + 0xc0, 0xe2, 0xaf, 0xdf, 0x92, 0xf6, 0x99, 0xa1, 0x77, 0xd8, 0xde, 0x7a, 0xc9, 0x0e, 0x2b, 0x16, + 0xd5, 0xf5, 0xa2, 0x5f, 0xd9, 0x37, 0x83, 0xf7, 0xc5, 0x77, 0xa7, 0x8e, 0x59, 0xa8, 0xff, 0x2a, + 0x5e, 0xc0, 0xb4, 0xba, 0x93, 0x02, 0x74, 0x8b, 0xf7, 0xc3, 0x67, 0x03, 0x06, 0xb4, 0x7d, 0x0e, + 0x06, 0x14, 0x7a, 0x10, 0x4b, 0x2d, 0x38, 0x0d, 0xc7, 0x60, 0x95, 0xfd, 0x6b, 0x6a, 0xa7, 0x48, + 0xa6, 0x2e, 0x06, 0xc9, 0xa0, 0x4a, 0x08, 0x30, 0x62, 0x20, 0x6a, 0xc0, 0x4a, 0x5e, 0x03, 0x90, + 0x4b, 0xab, 0xb2, 0xfa, 0x83, 0xf5, 0x88, 0xde, 0x7c, 0xd5, 0xb5, 0xaa, 0x56, 0xd3, 0xea, 0x5a, + 0xe3, 0x5b, 0xc7, 0x1a, 0x16, 0xd8, 0x57, 0x3d, 0x83, 0x70, 0x16, 0x5d, 0x4d, 0x37, 0x0c, 0x84, + 0x10, 0x85, 0x43, 0x83, 0x8b, 0x3b, 0xf6, 0x5e, 0x10, 0x56, 0x51, 0xb1, 0x0a, 0x60, 0x69, 0xc2, + 0x2c, 0x20, 0x56, 0xb8, 0x97, 0x42, 0x78, 0x8d, 0x6a, 0x21, 0x50, 0x8d, 0x7d, 0x0d, 0x8b, 0xcd, + 0x4c, 0xab, 0xb5, 0x66, 0x6b, 0x95, 0x50, 0x39, 0xbd, 0xf6, 0x7c, 0x86, 0x7e, 0xcd, 0x3e, 0x36, + 0x5d, 0x08, 0x35, 0xa6, 0x46, 0x11, 0xb3, 0x41, 0xb3, 0x49, 0x49, 0x2e, 0x30, 0x4e, 0x09, 0x5d, + 0x57, 0xa3, 0x78, 0xe0, 0x2e, 0x10, 0x3d, 0xa4, 0xf8, 0x2c, 0x50, 0x85, 0xd8, 0x75, 0x04, 0x15, + 0x0a, 0xca, 0x38, 0x0c, 0xbd, 0xa0, 0xad, 0x18, 0xc6, 0xaa, 0xce, 0xf0, 0x7c, 0x37, 0x74, 0x07, + 0xae, 0xfd, 0x4c, 0x99, 0x05, 0x81, 0xd2, 0x86, 0x4f, 0x05, 0x74, 0x4e, 0xbb, 0x52, 0x51, 0x8a, + 0x6b, 0xea, 0xc5, 0x0d, 0x42, 0xf4, 0xab, 0x8a, 0x4a, 0x05, 0xa0, 0x10, 0xe5, 0xc0, 0xb5, 0x19, + 0xe4, 0x8f, 0x0a, 0x8a, 0x40, 0x81, 0x4c, 0x7d, 0x5b, 0x01, 0x4c, 0x35, 0x89, 0x05, 0x1f, 0xaf, + 0x1f, 0x59, 0xff, 0xcc, 0x1d, 0x5c, 0xb1, 0xb0, 0xb0, 0xcc, 0x28, 0xf7, 0x2d, 0x87, 0xfa, 0x73, + 0x94, 0x21, 0xf0, 0xd2, 0x7c, 0x9f, 0xce, 0xfb, 0xd3, 0xe1, 0x90, 0xf9, 0x4a, 0x02, 0x00, 0x6a, + 0x97, 0x05, 0xa8, 0xb2, 0x0d, 0x66, 0x74, 0xb1, 0x63, 0xac, 0x8c, 0x1e, 0x18, 0x01, 0xaa, 0x86, + 0xd4, 0x19, 0x30, 0x18, 0x26, 0x3d, 0x2c, 0xb7, 0xcf, 0xcb, 0xc5, 0x1c, 0xc3, 0xf6, 0x2e, 0x2c, + 0x27, 0xdc, 0xe1, 0x79, 0xb2, 0x0c, 0x67, 0x1b, 0xb0, 0x36, 0x4c, 0x58, 0xcb, 0x72, 0x58, 0xcb, + 0x36, 0x37, 0x33, 0xa3, 0x2e, 0x43, 0x7e, 0x1c, 0xc9, 0x59, 0xea, 0xcb, 0xf7, 0xb8, 0x5d, 0xae, + 0xe3, 0xfd, 0xf9, 0x22, 0x34, 0x5e, 0x9d, 0xbd, 0x7f, 0x57, 0xf6, 0xd0, 0x29, 0x8e, 0x9b, 0x8f, + 0x80, 0x7e, 0xa0, 0x3a, 0x5c, 0x75, 0x21, 0x00, 0xb5, 0x98, 0x72, 0xcc, 0xf7, 0x41, 0x92, 0x62, + 0xda, 0xa1, 0x16, 0x21, 0x3c, 0x49, 0xd1, 0x5c, 0x2d, 0x2e, 0xcb, 0x25, 0x0e, 0x3f, 0xca, 0x21, + 0x10, 0x6b, 0x73, 0xf3, 0x2b, 0x7a, 0xd1, 0x80, 0xa3, 0xa2, 0x29, 0x88, 0x8a, 0x78, 0x02, 0xb9, + 0xc3, 0x87, 0x6f, 0x4b, 0xe5, 0x2f, 0xc0, 0xd5, 0xb8, 0xbb, 0x4f, 0xaa, 0xc9, 0x08, 0x77, 0x51, + 0xc3, 0xe4, 0xe8, 0x4e, 0xb7, 0x6c, 0x99, 0x40, 0x23, 0xf8, 0xdc, 0xdc, 0x2c, 0x40, 0x09, 0x1d, + 0x48, 0xf2, 0x2c, 0xc3, 0x63, 0xf4, 0xfe, 0xb1, 0xb0, 0x28, 0x47, 0xa8, 0x0d, 0xfa, 0xd5, 0x9c, + 0x93, 0x78, 0x74, 0x02, 0x22, 0x61, 0x6c, 0x49, 0x72, 0x34, 0x97, 0x20, 0x1f, 0xe7, 0x4b, 0xd9, + 0x0a, 0x04, 0x7f, 0x42, 0x35, 0xdb, 0x02, 0xf8, 0xfa, 0x84, 0x4b, 0x03, 0x18, 0x6e, 0x40, 0xfb, + 0xc6, 0x63, 0x83, 0x4c, 0xbd, 0x59, 0x4d, 0x12, 0x45, 0x29, 0x69, 0x01, 0xdb, 0x1c, 0x08, 0x59, + 0xc9, 0xd4, 0x08, 0x74, 0xe5, 0x39, 0xdc, 0xdb, 0x87, 0x31, 0xe1, 0xcf, 0xb9, 0x7c, 0x82, 0xd2, + 0x38, 0xb7, 0x26, 0xcc, 0x9d, 0x86, 0x05, 0x41, 0x7d, 0xad, 0xda, 0x84, 0x91, 0xb4, 0x94, 0x5b, + 0x60, 0x53, 0xba, 0x76, 0xd7, 0x63, 0x4e, 0x6e, 0xe5, 0x98, 0x81, 0x35, 0xa6, 0x81, 0x39, 0x0f, + 0x73, 0xa1, 0x25, 0x77, 0x71, 0x28, 0xfb, 0xec, 0x8f, 0x29, 0x0b, 0xc2, 0x57, 0x68, 0x3a, 0x18, + 0x1f, 0xb9, 0x8f, 0xb7, 0xe6, 0xc0, 0x19, 0x14, 0x3d, 0x28, 0xf3, 0x24, 0x67, 0xb8, 0x4b, 0x11, + 0x0c, 0x20, 0xa8, 0x71, 0x46, 0xd6, 0x10, 0x46, 0x81, 0xd4, 0xc3, 0x80, 0x5c, 0xc0, 0x40, 0xfd, + 0x84, 0xbc, 0xf9, 0x25, 0x25, 0x45, 0xf3, 0x56, 0xf0, 0xbe, 0xff, 0x1d, 0xe8, 0x0d, 0xaf, 0x6a, + 0xc6, 0x1a, 0x89, 0xe4, 0xf2, 0x15, 0x9b, 0x07, 0x85, 0x58, 0xa2, 0x5c, 0xd0, 0x93, 0xe1, 0x37, + 0xcd, 0x01, 0x79, 0x09, 0x3c, 0x1b, 0x6c, 0xa4, 0x52, 0x56, 0x80, 0xaa, 0x46, 0x86, 0xfb, 0x43, + 0xe8, 0xd0, 0x07, 0xea, 0x17, 0x1c, 0x18, 0x77, 0x9a, 0xf3, 0xb5, 0xfa, 0x8d, 0x0f, 0xc4, 0x40, + 0x5d, 0x5c, 0x53, 0x1f, 0xfb, 0x7d, 0xee, 0x1e, 0xa0, 0x1b, 0x05, 0x29, 0x19, 0xc6, 0xba, 0x42, + 0x54, 0x14, 0xa9, 0x4c, 0x41, 0x67, 0x85, 0x20, 0x91, 0xbc, 0xe6, 0xd8, 0xbb, 0x02, 0x90, 0x28, + 0x92, 0xf4, 0x5a, 0x6a, 0x4e, 0x3e, 0xfa, 0x97, 0x3e, 0x19, 0x57, 0x50, 0x21, 0xb9, 0x38, 0x7e, + 0x77, 0xbe, 0xf3, 0xfb, 0xdb, 0xde, 0x27, 0xa3, 0xd6, 0x6c, 0x6a, 0xf8, 0x56, 0x6d, 0xf1, 0xd7, + 0x56, 0xb3, 0x59, 0x6f, 0x76, 0x62, 0x8b, 0x41, 0x50, 0x23, 0xb0, 0xc4, 0x5c, 0x27, 0xee, 0x18, + 0x78, 0x22, 0x87, 0x36, 0xc3, 0xc7, 0xfd, 0x39, 0x87, 0x88, 0x92, 0x12, 0x83, 0xc3, 0xbc, 0x02, + 0xc2, 0xeb, 0x90, 0x65, 0x32, 0xf0, 0x56, 0xf0, 0xc6, 0x9d, 0x41, 0x3c, 0x45, 0x51, 0x35, 0x24, + 0x05, 0x59, 0x39, 0x74, 0x97, 0xe9, 0x2a, 0x58, 0xa0, 0x54, 0x09, 0x08, 0x77, 0x0f, 0xa8, 0x27, + 0x39, 0xa4, 0x08, 0x96, 0x2a, 0x4f, 0x0c, 0x1c, 0xdb, 0xdc, 0x4f, 0x10, 0x75, 0x28, 0x8a, 0x64, + 0x3c, 0x3c, 0x24, 0xc3, 0x1c, 0x6c, 0x93, 0xbb, 0x07, 0xa2, 0xc7, 0x9c, 0x51, 0x38, 0xee, 0xb8, + 0x60, 0x88, 0x40, 0x05, 0xba, 0xcf, 0xc2, 0xa2, 0x01, 0x6e, 0x17, 0x04, 0xed, 0xbd, 0x10, 0x28, + 0x0d, 0x6d, 0x5f, 0x78, 0x5e, 0xdc, 0x76, 0xfb, 0x49, 0x06, 0xc5, 0x25, 0x98, 0xba, 0xb9, 0x99, + 0x9f, 0x53, 0xaa, 0xaa, 0x2a, 0x56, 0xa9, 0x10, 0xa5, 0x98, 0x82, 0x6f, 0x2b, 0x25, 0x60, 0x5b, + 0x2a, 0xe1, 0xcf, 0x3f, 0x95, 0xdf, 0xb3, 0x29, 0xb2, 0x54, 0x3b, 0x8b, 0x4f, 0x47, 0x12, 0x25, + 0x4c, 0x53, 0x2d, 0x91, 0x4b, 0x49, 0xb2, 0x27, 0x59, 0x25, 0xc2, 0x00, 0xbb, 0x02, 0x0e, 0xd8, + 0x27, 0xd0, 0x00, 0x3c, 0x2a, 0x71, 0x51, 0x94, 0x1c, 0x49, 0x28, 0x68, 0xdf, 0xe5, 0xb5, 0xa4, + 0xd2, 0xd4, 0x14, 0x6b, 0xb8, 0x73, 0xd7, 0x73, 0xcc, 0xc3, 0x1b, 0x36, 0x98, 0x86, 0x0c, 0xf5, + 0x3d, 0xe8, 0x60, 0x47, 0x13, 0x9a, 0x00, 0x2c, 0x3e, 0x77, 0xfe, 0x58, 0x31, 0xd4, 0x16, 0x13, + 0x16, 0x8e, 0x5d, 0xb3, 0xad, 0x80, 0x60, 0x28, 0x91, 0x8a, 0xfe, 0x2a, 0x0c, 0x60, 0xa3, 0x0b, + 0x6e, 0xdd, 0xd5, 0x33, 0xe0, 0x25, 0xbb, 0x09, 0x81, 0x90, 0x85, 0x60, 0x73, 0x13, 0xc6, 0xec, + 0x91, 0x05, 0x7a, 0x52, 0x29, 0x86, 0x45, 0x85, 0x2b, 0xb4, 0x21, 0x5a, 0x7f, 0x18, 0x27, 0x0a, + 0x3a, 0x8d, 0x71, 0xc1, 0x85, 0x53, 0x70, 0x51, 0x23, 0xa8, 0x65, 0x61, 0x26, 0x52, 0xee, 0xa3, + 0xba, 0xe0, 0xd5, 0xb8, 0x9a, 0x72, 0x88, 0x8a, 0x03, 0x34, 0x6d, 0x18, 0x82, 0x00, 0x60, 0x8d, + 0xaa, 0x96, 0xd6, 0x2d, 0x58, 0x5c, 0xc5, 0xf1, 0x46, 0x6d, 0x7b, 0x5e, 0x00, 0x21, 0xea, 0x2e, + 0x22, 0x35, 0xda, 0xd8, 0xab, 0xc8, 0xc8, 0x2a, 0x09, 0xb1, 0x36, 0xfe, 0x76, 0x31, 0x16, 0x0f, + 0x03, 0x16, 0x69, 0x57, 0x7e, 0x71, 0x47, 0x14, 0x72, 0xb9, 0xe7, 0x75, 0xf7, 0x6c, 0xda, 0x67, + 0x76, 0x97, 0x17, 0xda, 0xab, 0x88, 0x17, 0xf2, 0x3f, 0x1c, 0xc0, 0x14, 0x48, 0xc0, 0x6c, 0x10, + 0x00, 0x39, 0x63, 0xc4, 0xc3, 0x8c, 0x92, 0x48, 0x52, 0x08, 0x58, 0xbe, 0x95, 0x14, 0x30, 0x28, + 0x63, 0xea, 0x80, 0xf7, 0xa1, 0xa4, 0x3c, 0x33, 0x11, 0x9b, 0x04, 0x71, 0x6c, 0xc2, 0x55, 0x12, + 0xb8, 0x9d, 0x53, 0xa6, 0x2a, 0x5d, 0xd1, 0x08, 0x34, 0xe3, 0x7a, 0x5c, 0xa2, 0x78, 0xba, 0x01, + 0x43, 0x96, 0xfa, 0x38, 0x55, 0xa4, 0xf0, 0xf8, 0x68, 0x1f, 0x9e, 0xf6, 0x2a, 0x02, 0xe2, 0xbe, + 0x12, 0x36, 0xc6, 0x51, 0xca, 0x32, 0xa4, 0x7a, 0xa8, 0xcc, 0xcc, 0x06, 0x2b, 0xd9, 0xfd, 0xf8, + 0xe6, 0xf0, 0xf9, 0x43, 0x90, 0x23, 0x18, 0x31, 0x0c, 0x4c, 0x56, 0xf7, 0x85, 0x78, 0x78, 0x08, + 0x1e, 0x2c, 0xb2, 0xd2, 0x7d, 0xce, 0xae, 0x1f, 0x82, 0x93, 0x18, 0x3f, 0x0a, 0x5b, 0x93, 0xfa, + 0x57, 0x58, 0x29, 0x78, 0xc0, 0xd8, 0xc3, 0x87, 0xc0, 0xfb, 0xf0, 0xa9, 0x74, 0xf7, 0xe1, 0xf3, + 0x21, 0x48, 0x88, 0x4a, 0xa0, 0x62, 0xf0, 0xea, 0xae, 0x1e, 0x24, 0xb2, 0x47, 0x07, 0xc8, 0x13, + 0xfc, 0x7a, 0x08, 0xd6, 0x99, 0x53, 0xa0, 0xd7, 0x3b, 0xf8, 0x5c, 0x87, 0xac, 0x08, 0x79, 0xe9, + 0xee, 0x41, 0x85, 0x4e, 0x97, 0xfc, 0x89, 0x29, 0xf8, 0xb4, 0x67, 0x39, 0xde, 0x14, 0x34, 0x32, + 0xf7, 0x6f, 0xfb, 0xd3, 0x30, 0xc4, 0x89, 0x44, 0x59, 0x1f, 0x37, 0x7a, 0xd6, 0xe0, 0xe2, 0x58, + 0xc8, 0x5d, 0x3f, 0xf5, 0x8e, 0x6e, 0x8c, 0x35, 0xb8, 0xc2, 0xa9, 0x4f, 0x6e, 0xdb, 0xd0, 0xbb, + 0x28, 0x6c, 0x3d, 0x5d, 0xe4, 0xba, 0x06, 0x3e, 0xf3, 0x6c, 0x40, 0x1f, 0x42, 0x52, 0xb0, 0x7b, + 0x53, 0x4b, 0x41, 0xb5, 0x12, 0x6d, 0x11, 0x6d, 0xeb, 0x77, 0x40, 0x6a, 0xb8, 0xa5, 0x76, 0x94, + 0xee, 0x5e, 0x85, 0xe3, 0x91, 0xc2, 0xd7, 0xeb, 0x5e, 0x46, 0x89, 0x00, 0x33, 0x35, 0xeb, 0xa1, + 0xc4, 0x19, 0xdc, 0x45, 0xc2, 0xc6, 0xec, 0xb3, 0xd0, 0xf5, 0x61, 0x48, 0xf3, 0x20, 0x2b, 0x64, + 0x93, 0x82, 0x18, 0x25, 0x3c, 0x3f, 0x31, 0x78, 0xf1, 0x83, 0x34, 0x79, 0x65, 0x3e, 0x6e, 0x71, + 0xf2, 0x02, 0x2c, 0xd9, 0x32, 0x8e, 0x97, 0x8e, 0x68, 0xa6, 0xd6, 0x51, 0xb6, 0x56, 0xee, 0x83, + 0x2b, 0xa8, 0x70, 0xc1, 0xc4, 0xa1, 0x26, 0xe7, 0x03, 0x3d, 0x33, 0x2e, 0x55, 0x31, 0xde, 0x0c, + 0xf4, 0xa0, 0x32, 0xea, 0x2d, 0x9c, 0xdb, 0xac, 0xbb, 0xd1, 0xf6, 0x5d, 0x37, 0xd4, 0xf8, 0x67, + 0x39, 0x1e, 0x79, 0x8b, 0x52, 0xa9, 0x3f, 0x2a, 0x41, 0x84, 0xe3, 0xfa, 0xed, 0x5f, 0xaa, 0x35, + 0xfc, 0xd7, 0x29, 0x95, 0x50, 0x4f, 0xc7, 0x89, 0x83, 0xa1, 0xa9, 0xef, 0xb6, 0x30, 0x71, 0x9c, + 0x24, 0xd5, 0xb6, 0x59, 0x0b, 0x93, 0xd6, 0x53, 0xfa, 0xae, 0x6f, 0x32, 0x3f, 0x49, 0x36, 0xa9, + 0xd9, 0xa2, 0x90, 0x2c, 0x10, 0x4c, 0xda, 0xa1, 0x3b, 0x74, 0x38, 0x84, 0x64, 0xae, 0x82, 0xe2, + 0xd4, 0x9d, 0xfa, 0xa0, 0xc9, 0xfa, 0x90, 0xca, 0x15, 0xa4, 0x93, 0x40, 0x37, 0x77, 0x77, 0x68, + 0xa3, 0x0e, 0xe9, 0x43, 0xd0, 0x35, 0xa5, 0xc0, 0xba, 0x65, 0xed, 0xaa, 0xee, 0xdd, 0x44, 0xcb, + 0x8e, 0xf0, 0xe1, 0x95, 0xee, 0x89, 0x6d, 0x39, 0x8c, 0xfa, 0x25, 0x18, 0xce, 0xa6, 0x85, 0x7e, + 0x46, 0xe8, 0x92, 0xbe, 0x0b, 0x62, 0x36, 0xd1, 0xc8, 0x2f, 0xc3, 0x61, 0x9f, 0xd5, 0xeb, 0x44, + 0xff, 0x27, 0x78, 0xee, 0xb7, 0xf4, 0x61, 0xab, 0x46, 0x20, 0x4c, 0xfc, 0x27, 0x75, 0xa5, 0xdb, + 0x7a, 0x1d, 0xff, 0x65, 0xba, 0x2d, 0xa0, 0x77, 0xaa, 0xe9, 0x8e, 0x8b, 0xb4, 0xb5, 0x8e, 0xb7, + 0x38, 0x31, 0xb2, 0xbd, 0x3e, 0xe2, 0x3f, 0x6b, 0xbd, 0x6e, 0xb1, 0xfe, 0xce, 0x9d, 0xbd, 0x43, + 0xd5, 0xf5, 0x30, 0x8b, 0x86, 0x9c, 0x98, 0x09, 0xa2, 0xfe, 0xa8, 0x5f, 0x40, 0x6f, 0x8e, 0x54, + 0x5b, 0xba, 0x46, 0x74, 0x35, 0x85, 0x6f, 0x4e, 0x56, 0x06, 0xf1, 0x9c, 0xfc, 0x4c, 0x27, 0x72, + 0xf2, 0x73, 0xf1, 0x96, 0x8a, 0xf4, 0xb1, 0x3c, 0xd9, 0xdd, 0xde, 0xad, 0xed, 0x36, 0x04, 0x4f, + 0x1a, 0xdb, 0x8d, 0x66, 0x23, 0x9f, 0x27, 0xc3, 0xfe, 0xb0, 0x31, 0x6c, 0x64, 0x78, 0x52, 0xab, + 0x36, 0x76, 0x6a, 0xfd, 0x34, 0x47, 0x92, 0x94, 0x2c, 0x47, 0x92, 0xe4, 0x2c, 0x53, 0x92, 0xe4, + 0x6c, 0x37, 0xd2, 0x09, 0xa5, 0xa0, 0xbd, 0x93, 0x74, 0x0c, 0x34, 0xfe, 0xdf, 0x7e, 0xc8, 0xac, + 0x0d, 0x97, 0x58, 0x80, 0x52, 0x5d, 0xa8, 0xd6, 0xea, 0x69, 0x64, 0x75, 0xfe, 0x93, 0xe9, 0x51, + 0xcb, 0x6c, 0xed, 0xb4, 0x28, 0x1f, 0x0d, 0x59, 0x54, 0xe3, 0x8c, 0x98, 0x62, 0x60, 0xcf, 0x1e, + 0x26, 0x59, 0x6b, 0xb7, 0x65, 0x6e, 0x9b, 0xb2, 0x08, 0xda, 0xb4, 0x4c, 0x11, 0xbd, 0x59, 0xdf, + 0x6d, 0xed, 0xaf, 0x14, 0x39, 0xdc, 0x3e, 0xaa, 0x1e, 0x1d, 0x3e, 0x7e, 0x84, 0x66, 0xb1, 0x8c, + 0x41, 0x65, 0x93, 0x68, 0x1c, 0x57, 0x48, 0x32, 0xa0, 0x66, 0x63, 0xa5, 0x49, 0xb6, 0xdd, 0x6c, + 0xec, 0xe8, 0x6b, 0x75, 0x89, 0xe4, 0x58, 0x21, 0xa1, 0xd5, 0xcc, 0x62, 0x2f, 0x28, 0x97, 0x16, + 0xe4, 0x5a, 0xdf, 0xac, 0x72, 0xde, 0x8f, 0x4a, 0x53, 0xdf, 0x6e, 0xc3, 0x6f, 0x61, 0x8b, 0x2f, + 0xa1, 0xe1, 0x22, 0xa0, 0x25, 0xec, 0x58, 0xc5, 0x85, 0xf0, 0x1e, 0xb8, 0x17, 0x82, 0x77, 0x37, + 0x89, 0x57, 0xd4, 0xb6, 0x92, 0x21, 0x37, 0xa4, 0x13, 0xcb, 0x9e, 0xb7, 0xb7, 0x4e, 0x7c, 0x06, + 0x8e, 0x20, 0xba, 0x0a, 0x21, 0xa9, 0x9d, 0x6c, 0x69, 0x83, 0x29, 0xb8, 0xa6, 0xd7, 0x4c, 0x62, + 0x83, 0xe6, 0x39, 0x8b, 0x4c, 0xb5, 0x5e, 0x6f, 0x6d, 0xe7, 0x2a, 0x90, 0x9f, 0x80, 0xcc, 0x81, + 0x3b, 0xb1, 0x06, 0xe4, 0x1d, 0x9b, 0xb2, 0x25, 0x22, 0x68, 0x89, 0xb8, 0x01, 0xca, 0x2c, 0x65, + 0xf0, 0x89, 0x7c, 0x6e, 0x76, 0x63, 0xd7, 0x8f, 0x3b, 0xcf, 0x43, 0x4b, 0xa6, 0x12, 0x9c, 0xa7, + 0x76, 0xe8, 0x75, 0xf9, 0x7b, 0xc0, 0x33, 0x00, 0x21, 0x99, 0x51, 0xd3, 0x6b, 0x8d, 0x6a, 0x55, + 0x6f, 0xf2, 0x64, 0x30, 0xf3, 0xae, 0x48, 0x16, 0x73, 0x78, 0x95, 0xca, 0xc8, 0x0a, 0xc7, 0xd3, + 0x3e, 0xfa, 0xc8, 0x15, 0x36, 0x73, 0x67, 0x56, 0x25, 0xae, 0x5f, 0x23, 0xc1, 0xb4, 0x3f, 0xb1, + 0x42, 0x22, 0x7c, 0xd7, 0x80, 0x80, 0x06, 0x42, 0x27, 0x95, 0xf0, 0x36, 0x69, 0x40, 0x4e, 0x4e, + 0x79, 0x5a, 0xb6, 0x14, 0x6f, 0xa5, 0xc7, 0x57, 0x4a, 0x83, 0xc7, 0xb4, 0x52, 0xc1, 0xa1, 0x68, + 0x85, 0x41, 0x05, 0xf1, 0xe7, 0x85, 0x0f, 0x5c, 0x6f, 0xee, 0xf3, 0xa9, 0xff, 0xff, 0xfc, 0x37, + 0x8e, 0x3c, 0x79, 0xc1, 0x0b, 0x27, 0x1d, 0x07, 0x57, 0x1f, 0x8b, 0x10, 0xd9, 0xca, 0xdf, 0x29, + 0x0a, 0xd9, 0xa8, 0xfc, 0xfa, 0xeb, 0x06, 0xf9, 0x15, 0xe3, 0x10, 0xce, 0x30, 0x92, 0x12, 0x19, + 0xc2, 0x5d, 0x1d, 0xcc, 0x3d, 0xf1, 0xad, 0x6b, 0x64, 0x9f, 0xc7, 0x83, 0xc3, 0x80, 0x50, 0x1f, + 0x9e, 0xc1, 0x49, 0xb3, 0x6e, 0x98, 0x49, 0x66, 0x40, 0x0c, 0x42, 0xc9, 0xd6, 0x2f, 0x5b, 0x24, + 0x40, 0x86, 0xb0, 0x39, 0x24, 0xd9, 0x36, 0xe2, 0x31, 0x81, 0x08, 0x7f, 0x02, 0xca, 0xcb, 0xc4, + 0x05, 0x1e, 0xc8, 0x21, 0x7d, 0x88, 0x10, 0x21, 0xd4, 0x80, 0x3a, 0x2b, 0x32, 0x00, 0x92, 0xcb, + 0x1d, 0x64, 0xb1, 0xb1, 0x41, 0x48, 0x3a, 0x0e, 0x82, 0x14, 0x94, 0x0a, 0xf4, 0xab, 0x30, 0x18, + 0x22, 0x06, 0x49, 0x05, 0x46, 0x9d, 0x0d, 0x9e, 0x89, 0x2f, 0xc2, 0x21, 0x7b, 0x63, 0x41, 0xcf, + 0x8b, 0x06, 0x51, 0xcc, 0xd2, 0xd0, 0x66, 0x37, 0x04, 0x3f, 0x70, 0x70, 0x4c, 0x27, 0x8e, 0x92, + 0x06, 0x4e, 0x02, 0x2a, 0x04, 0xbe, 0xdc, 0x7b, 0x52, 0x2a, 0x91, 0x1e, 0x20, 0x14, 0xf2, 0x3e, + 0x51, 0x12, 0xe0, 0x8a, 0x39, 0x0d, 0x39, 0xae, 0xa1, 0xeb, 0x11, 0xda, 0x77, 0xaf, 0x19, 0x7f, + 0xe3, 0xc4, 0x01, 0x71, 0xb6, 0x46, 0xc2, 0x47, 0x85, 0x62, 0xb6, 0x3b, 0xe3, 0x59, 0x63, 0xc6, + 0x85, 0x03, 0x25, 0xef, 0xc6, 0xc3, 0x89, 0xb8, 0x6b, 0xa8, 0x10, 0x68, 0x08, 0xc1, 0x2a, 0x26, + 0x0e, 0x41, 0x32, 0xa8, 0x33, 0x8f, 0x57, 0xe9, 0xc9, 0x86, 0x10, 0x77, 0x02, 0x5c, 0x0d, 0xc6, + 0x3e, 0xae, 0xc6, 0x5b, 0x38, 0x63, 0xc9, 0x80, 0xa6, 0x20, 0xcb, 0x10, 0x48, 0x8f, 0x31, 0x08, + 0x86, 0x82, 0xc1, 0x18, 0x1a, 0x80, 0x56, 0xb1, 0x0d, 0x9a, 0x42, 0xb2, 0x54, 0xea, 0x42, 0x1d, + 0x7b, 0xa6, 0x75, 0xcd, 0x3d, 0x6c, 0x91, 0xa5, 0x08, 0x6e, 0x41, 0xa0, 0xc7, 0xd5, 0x02, 0xc3, + 0x35, 0x03, 0x02, 0x0a, 0x41, 0xcc, 0xc9, 0x75, 0x79, 0xa3, 0xbc, 0xbb, 0x27, 0xe8, 0x55, 0x2f, + 0xeb, 0x24, 0x08, 0x8f, 0xad, 0x50, 0xe2, 0x51, 0xd3, 0x04, 0x56, 0x61, 0xbd, 0x9c, 0x91, 0x40, + 0x87, 0x19, 0x44, 0xf1, 0xc4, 0x0a, 0xb7, 0x38, 0x5e, 0xc8, 0xf2, 0x00, 0x7b, 0xb0, 0x2c, 0xcc, + 0xf1, 0x89, 0xb9, 0x3d, 0xb6, 0xa0, 0xbc, 0x23, 0xb0, 0x93, 0x8d, 0x71, 0x24, 0x25, 0x62, 0x1e, + 0x2d, 0xd5, 0x49, 0x0a, 0x3b, 0xa5, 0x1b, 0xb8, 0x93, 0x34, 0x16, 0x7b, 0x15, 0x80, 0xee, 0xca, + 0xde, 0xf1, 0x67, 0x78, 0xd8, 0x90, 0x35, 0xbd, 0xcd, 0xd2, 0x9f, 0xf4, 0xa9, 0x4f, 0x40, 0xc4, + 0x01, 0x6d, 0x21, 0x85, 0x92, 0x09, 0x48, 0x7e, 0x40, 0x1e, 0x48, 0x0e, 0xb4, 0xa4, 0xf6, 0x8c, + 0xce, 0x03, 0x72, 0x6d, 0x05, 0x56, 0x1f, 0x34, 0xc4, 0x0a, 0xdd, 0x90, 0xa3, 0x25, 0xa8, 0x31, + 0xa1, 0x9c, 0x14, 0x1d, 0x0a, 0xe6, 0xd5, 0xe1, 0x8a, 0x32, 0x1c, 0x8c, 0x85, 0x20, 0x09, 0x3e, + 0x95, 0x74, 0x0c, 0x39, 0x38, 0x5e, 0x19, 0xac, 0x38, 0x11, 0x90, 0xbb, 0xf0, 0x12, 0x70, 0xe2, + 0x78, 0x30, 0x42, 0x13, 0x7e, 0x23, 0x4a, 0xa0, 0xa1, 0x6c, 0x40, 0x84, 0xad, 0x88, 0x05, 0x27, + 0xe4, 0x35, 0xb5, 0x6c, 0xdc, 0x22, 0x42, 0xfa, 0xbe, 0x1b, 0xcc, 0x80, 0x6b, 0xdc, 0x00, 0x95, + 0xc9, 0x7b, 0x10, 0xa3, 0x21, 0xca, 0x18, 0xf4, 0x04, 0x02, 0x94, 0x44, 0x6e, 0xa0, 0xac, 0xa0, + 0x34, 0x76, 0x94, 0x26, 0xc2, 0x46, 0x40, 0x37, 0x43, 0x1c, 0x8f, 0x74, 0x71, 0xd8, 0x35, 0x56, + 0x03, 0xe2, 0x13, 0x68, 0xd0, 0x1d, 0xa8, 0x83, 0x4b, 0x14, 0x34, 0x36, 0x04, 0x93, 0x02, 0x59, + 0xe8, 0xba, 0x31, 0x49, 0x38, 0x29, 0xed, 0xc2, 0x95, 0xcb, 0xa3, 0x51, 0x42, 0x1f, 0x4e, 0x8a, + 0x91, 0xef, 0xce, 0x4a, 0x55, 0xe2, 0x4a, 0xe4, 0x4a, 0x02, 0x95, 0xb4, 0x80, 0x71, 0x9a, 0x24, + 0x9d, 0x47, 0xda, 0x08, 0x3e, 0x05, 0x0c, 0x12, 0xc1, 0x99, 0x98, 0xc3, 0x28, 0x33, 0x59, 0x9a, + 0x97, 0x48, 0x21, 0x2a, 0xe9, 0x38, 0x84, 0x61, 0xc1, 0xc9, 0x32, 0x08, 0xc1, 0xf6, 0x08, 0x4a, + 0x26, 0x22, 0x95, 0x61, 0x9d, 0x6c, 0x62, 0x95, 0x7d, 0xe3, 0x12, 0x78, 0x9e, 0x12, 0x9f, 0x54, + 0x11, 0xd1, 0x7a, 0x86, 0xdf, 0x19, 0xd6, 0x2e, 0x7b, 0x34, 0x2f, 0xd1, 0x69, 0xe8, 0x2e, 0x6b, + 0x88, 0x25, 0x31, 0x53, 0x1d, 0xe2, 0x95, 0x4b, 0x98, 0x74, 0xa5, 0xd5, 0xb5, 0x4a, 0x09, 0x37, + 0xa4, 0x10, 0x00, 0x83, 0xcb, 0x58, 0xea, 0x43, 0x7f, 0xaf, 0xda, 0x84, 0x7f, 0x95, 0x30, 0x45, + 0xe9, 0x6e, 0xac, 0x37, 0xba, 0x94, 0x38, 0x49, 0xdf, 0x73, 0x34, 0x79, 0x28, 0xdd, 0x0e, 0xe8, + 0x1b, 0x3a, 0xf1, 0x40, 0x72, 0xdc, 0x21, 0x1f, 0xbe, 0x23, 0x26, 0x46, 0x6d, 0xdc, 0x2a, 0xb7, + 0x86, 0x42, 0x2c, 0x52, 0x3a, 0x49, 0x43, 0x7d, 0x33, 0x77, 0xa7, 0x20, 0x26, 0xc0, 0x7e, 0x5e, + 0x20, 0x3d, 0x66, 0x1f, 0x41, 0x69, 0x4e, 0xe2, 0xbb, 0x09, 0x36, 0xae, 0xc6, 0xdd, 0x14, 0x83, + 0xb2, 0xdd, 0x64, 0x13, 0xa5, 0xfb, 0x92, 0x41, 0xdc, 0x00, 0x62, 0xf8, 0xde, 0x61, 0x7c, 0xf5, + 0xfc, 0x71, 0xd0, 0xe7, 0x33, 0xf7, 0x47, 0xa0, 0xc7, 0x3e, 0xfb, 0x91, 0xda, 0x8f, 0xdc, 0xa9, + 0xff, 0x23, 0xe0, 0x20, 0x91, 0x4b, 0xf0, 0x14, 0x8f, 0x90, 0x7e, 0x3f, 0xc2, 0x20, 0xa1, 0x0e, + 0x50, 0xcc, 0x81, 0xac, 0x96, 0x2f, 0x75, 0xc5, 0x4d, 0xa2, 0x4f, 0xc1, 0xca, 0x4e, 0x43, 0xc9, + 0x39, 0x68, 0xf8, 0xa7, 0x73, 0x4c, 0x0e, 0xda, 0xb8, 0xaf, 0x7d, 0x3a, 0xb8, 0x1a, 0xf1, 0xb5, + 0x5b, 0xe9, 0x4f, 0x92, 0x91, 0xcf, 0xe6, 0xca, 0xb2, 0x6f, 0x92, 0x3a, 0xdc, 0x7c, 0x00, 0x62, + 0x94, 0x4b, 0x39, 0x61, 0x62, 0x46, 0x04, 0x8d, 0x07, 0xb7, 0x5e, 0xdc, 0x11, 0x10, 0xba, 0x1d, + 0xd0, 0x1c, 0x8c, 0x2d, 0xdb, 0xf4, 0x41, 0x4b, 0xc5, 0x96, 0x8c, 0xe3, 0x2d, 0x14, 0x73, 0x48, + 0xaf, 0x90, 0x9e, 0x53, 0x4f, 0x28, 0xa5, 0x29, 0xc8, 0x27, 0xdf, 0x00, 0xc7, 0x35, 0x81, 0xd4, + 0xe4, 0xd9, 0x76, 0xd3, 0xe3, 0x2f, 0x67, 0xbc, 0x4b, 0xa5, 0x2d, 0xcd, 0xde, 0x77, 0x70, 0x83, + 0xac, 0xe1, 0x3c, 0xb1, 0x33, 0xb1, 0xe6, 0x44, 0xfe, 0x76, 0xcf, 0x19, 0x78, 0x0a, 0x07, 0x52, + 0x3d, 0x1d, 0x61, 0xd3, 0x1f, 0x79, 0xd3, 0x45, 0xf2, 0x92, 0x89, 0xe9, 0xbd, 0x94, 0x3c, 0x24, + 0x2c, 0x5e, 0x67, 0xf6, 0x9a, 0x85, 0x3a, 0x12, 0xba, 0x35, 0xed, 0x42, 0x48, 0xa5, 0x2a, 0x3d, + 0xa4, 0x8c, 0xa1, 0x5a, 0x51, 0xb4, 0x42, 0x31, 0xdf, 0xa1, 0x9a, 0xd2, 0x26, 0x9d, 0x3f, 0x87, + 0xfe, 0xd4, 0x19, 0x70, 0x87, 0x0c, 0x6c, 0xaa, 0xd2, 0xdd, 0x1c, 0x80, 0x87, 0xda, 0x21, 0x7c, + 0x96, 0x4e, 0xd6, 0xb0, 0x85, 0x49, 0x5b, 0x5d, 0x39, 0x5f, 0x97, 0xd9, 0x5c, 0xf3, 0xbf, 0xff, + 0xd7, 0x7f, 0x90, 0x12, 0xf7, 0x5d, 0x21, 0x45, 0x5b, 0x3a, 0xb1, 0x48, 0xfb, 0xe5, 0x2e, 0x17, + 0xe0, 0x92, 0x74, 0x2b, 0x4d, 0x02, 0x82, 0x01, 0x2d, 0x0b, 0xf7, 0x53, 0x76, 0xfb, 0x52, 0xc8, + 0x3b, 0x38, 0xaa, 0x17, 0x1e, 0xf7, 0xec, 0xb1, 0xbb, 0x83, 0xc4, 0x51, 0x06, 0x6f, 0x01, 0x0a, + 0xc7, 0xce, 0x8b, 0xe8, 0x1c, 0x2f, 0x90, 0x4c, 0xab, 0xfd, 0x31, 0x65, 0xfe, 0xfc, 0x8c, 0x47, + 0x61, 0xae, 0x5f, 0xd8, 0xfa, 0x45, 0x5a, 0xa6, 0x32, 0xc7, 0x5b, 0x4e, 0x7c, 0x9f, 0xe3, 0x90, + 0x30, 0x08, 0xae, 0x7b, 0x3d, 0x87, 0x36, 0x0a, 0x2a, 0x4e, 0xa9, 0x21, 0xcb, 0x3e, 0x33, 0xea, + 0x17, 0x54, 0xa8, 0x30, 0x02, 0x0c, 0xc0, 0x6b, 0xd9, 0x07, 0xd7, 0x6e, 0x03, 0x31, 0xe2, 0xde, + 0x2c, 0x01, 0x8f, 0xf5, 0x8c, 0x85, 0x69, 0x33, 0x22, 0x3c, 0x5f, 0x91, 0xf5, 0x0f, 0x8f, 0xfa, + 0x74, 0x42, 0x16, 0x62, 0xc5, 0x24, 0x8a, 0xd7, 0x7b, 0xc1, 0x11, 0x4c, 0x83, 0x55, 0xe0, 0x13, + 0xad, 0xae, 0xa8, 0x40, 0xd0, 0x8e, 0xaf, 0x66, 0x4e, 0x92, 0xc7, 0xd8, 0x45, 0x85, 0xc1, 0x59, + 0x78, 0x92, 0x4e, 0x16, 0xeb, 0x38, 0x82, 0x42, 0x7c, 0x16, 0xfd, 0x97, 0xd5, 0x5a, 0xa0, 0x57, + 0xcb, 0x02, 0x02, 0x30, 0x77, 0x42, 0x72, 0x2b, 0x5d, 0xf0, 0xd8, 0xdc, 0xd2, 0x52, 0xc5, 0xca, + 0x96, 0x19, 0xfb, 0xc1, 0x59, 0x36, 0xac, 0xb8, 0xaa, 0xf7, 0xd0, 0x1d, 0x7c, 0x58, 0x20, 0x7d, + 0xec, 0x08, 0x91, 0x32, 0x40, 0x4c, 0x4b, 0x16, 0x34, 0x0c, 0x1c, 0x00, 0x43, 0x7c, 0x48, 0x07, + 0xe3, 0x02, 0xa6, 0x21, 0x2e, 0xc4, 0xe8, 0xca, 0xfe, 0x8a, 0x1e, 0xc7, 0xe9, 0x7c, 0x21, 0x1f, + 0xf0, 0xe5, 0x2b, 0xf2, 0xc4, 0x30, 0xee, 0xe8, 0xb1, 0x58, 0xb0, 0x4f, 0x6a, 0x80, 0xf0, 0x30, + 0x2e, 0x9f, 0xf8, 0xef, 0xb8, 0x9e, 0x5e, 0xd8, 0x12, 0x91, 0x39, 0x33, 0xb7, 0x54, 0x09, 0x1a, + 0x11, 0xbe, 0xb4, 0x7e, 0x6f, 0x49, 0x9f, 0x4d, 0x40, 0xb9, 0xe5, 0x15, 0xe6, 0xdf, 0x91, 0x9a, + 0x47, 0xa7, 0xa5, 0x43, 0xf2, 0x03, 0xc4, 0x5a, 0xfa, 0x11, 0xff, 0x97, 0xe4, 0xb2, 0xcc, 0x7b, + 0x88, 0x05, 0xac, 0xfd, 0x6f, 0x45, 0xaa, 0xb4, 0x43, 0x9b, 0xc8, 0xbc, 0xc0, 0x7d, 0x19, 0xb3, + 0x1d, 0x4d, 0x9d, 0x34, 0xd6, 0x18, 0xae, 0x6d, 0x61, 0xc1, 0xad, 0xd4, 0x3a, 0x16, 0x08, 0xbe, + 0x04, 0xb8, 0xcc, 0xd1, 0xe5, 0xa9, 0xa8, 0x8d, 0xe4, 0x9b, 0xac, 0x94, 0x2e, 0x4f, 0x15, 0x5f, + 0x71, 0xd2, 0x13, 0x18, 0x61, 0xd1, 0xe3, 0xc0, 0x08, 0x27, 0x2c, 0x94, 0xee, 0xd3, 0xc5, 0x9d, + 0x34, 0x8f, 0xd2, 0xba, 0x7f, 0xc5, 0xf3, 0xcb, 0x36, 0xb8, 0xe6, 0xfb, 0x5c, 0x82, 0xfd, 0xc8, + 0xa1, 0x47, 0x21, 0xbf, 0x2d, 0x95, 0x14, 0x93, 0x6a, 0x2f, 0xb3, 0x0e, 0x26, 0x7f, 0xb9, 0xdc, + 0x58, 0x32, 0xa4, 0x52, 0x31, 0x5d, 0x07, 0x14, 0xd9, 0x10, 0xd5, 0xe3, 0x92, 0x8e, 0xe0, 0x52, + 0x83, 0x2d, 0x45, 0x87, 0x20, 0x10, 0xd1, 0x84, 0x63, 0x72, 0x4e, 0x39, 0xae, 0xc9, 0x82, 0x32, + 0x09, 0xfb, 0x66, 0x9b, 0x64, 0x50, 0x21, 0x20, 0x32, 0x1c, 0xd4, 0x04, 0x8b, 0x64, 0x82, 0xd3, + 0x31, 0x08, 0xed, 0xf9, 0x0a, 0x2f, 0x41, 0x2e, 0x9f, 0xb3, 0x21, 0x9d, 0xda, 0xe1, 0x07, 0x5c, + 0x87, 0x08, 0x32, 0x1c, 0xbd, 0x13, 0xe4, 0xae, 0x4e, 0x26, 0x9d, 0x40, 0x2d, 0xfd, 0x90, 0x2e, + 0x7d, 0x58, 0x7b, 0x8b, 0xe9, 0x1e, 0x0c, 0x5b, 0x7c, 0xb0, 0xe0, 0x48, 0x13, 0x69, 0x5e, 0x64, + 0xb6, 0x8d, 0x53, 0x00, 0xb3, 0x31, 0xee, 0x86, 0xe1, 0xaa, 0x68, 0x82, 0xeb, 0xcd, 0x2c, 0xc8, + 0x2a, 0x7d, 0xb1, 0xc7, 0x20, 0x56, 0xfa, 0xb8, 0x41, 0x8b, 0x94, 0xc4, 0xe4, 0x87, 0x6c, 0x03, + 0x52, 0x44, 0x09, 0x00, 0x1c, 0x8d, 0xb8, 0x27, 0xd3, 0x9f, 0xf3, 0x71, 0x14, 0x2f, 0x5f, 0xdd, + 0x69, 0x1e, 0xb0, 0xb6, 0xc2, 0xb2, 0xe2, 0x98, 0x72, 0x9c, 0x3a, 0x39, 0x06, 0x20, 0x67, 0x4f, + 0x9c, 0xd8, 0x77, 0x89, 0xbc, 0x4c, 0x91, 0x06, 0x35, 0xc9, 0x24, 0xab, 0x47, 0x51, 0x73, 0xa4, + 0x1a, 0x4a, 0x19, 0x9a, 0x29, 0x1f, 0xb3, 0x67, 0xb1, 0x66, 0x7b, 0x0b, 0x78, 0x17, 0xc0, 0x4a, + 0x20, 0x1f, 0x1e, 0x4d, 0x60, 0xf9, 0x16, 0x78, 0x6c, 0x60, 0x0d, 0xad, 0xe5, 0xe4, 0x8d, 0x65, + 0xe6, 0xd3, 0x12, 0x34, 0x59, 0x86, 0x86, 0x31, 0xdc, 0x8f, 0x53, 0x10, 0x34, 0xc6, 0x52, 0xf3, + 0xfd, 0x64, 0xba, 0x09, 0x7d, 0x0b, 0xd5, 0x27, 0xc4, 0xa8, 0x90, 0x17, 0x92, 0x0c, 0x53, 0xc7, + 0x02, 0x55, 0x2f, 0x24, 0x68, 0xb9, 0x03, 0x0c, 0x29, 0x8d, 0xe2, 0x23, 0x89, 0x8a, 0x71, 0xad, + 0xa0, 0xa7, 0x44, 0x50, 0x6c, 0xc0, 0x11, 0x65, 0xf9, 0x76, 0xd1, 0x7b, 0x90, 0xe3, 0x05, 0x00, + 0x43, 0x1b, 0x46, 0x71, 0x21, 0x85, 0x24, 0xb8, 0xf6, 0xe0, 0x5c, 0xdd, 0xc4, 0x76, 0x3d, 0x50, + 0xd3, 0x76, 0x43, 0xee, 0x16, 0x49, 0x6f, 0x38, 0x3a, 0x46, 0xe8, 0x02, 0xb7, 0x2e, 0x93, 0x58, + 0x14, 0x8c, 0x55, 0xf1, 0x50, 0x79, 0x22, 0xaf, 0x38, 0xd6, 0xe9, 0xbc, 0xf9, 0x09, 0xf5, 0xee, + 0x97, 0xab, 0xa5, 0xee, 0x47, 0x5b, 0x96, 0xa6, 0x03, 0xe9, 0x83, 0x48, 0x4d, 0xf0, 0x58, 0x09, + 0x9f, 0x17, 0xb3, 0xd9, 0x35, 0xb3, 0x39, 0x4f, 0x53, 0x94, 0xe0, 0x1b, 0xe8, 0x8c, 0x34, 0x41, + 0x64, 0x3f, 0x78, 0xc3, 0x02, 0xd9, 0x6e, 0xca, 0x40, 0x88, 0x52, 0xb1, 0x1d, 0x82, 0x92, 0x8f, + 0xf0, 0x20, 0xc8, 0x33, 0xb2, 0xb4, 0x5c, 0xa4, 0x4d, 0xb6, 0xb6, 0x92, 0xea, 0x24, 0xb5, 0x84, + 0x5d, 0x49, 0x96, 0x9a, 0xd3, 0x0c, 0x91, 0x1b, 0xa7, 0x57, 0xc7, 0xac, 0xd8, 0xd6, 0x95, 0x76, + 0x63, 0x12, 0x3f, 0x3c, 0xb1, 0xf0, 0x12, 0x4d, 0x3e, 0x4f, 0xf3, 0x74, 0x11, 0x63, 0x10, 0xa1, + 0x03, 0xde, 0x50, 0x08, 0x96, 0x2d, 0x89, 0xd5, 0x70, 0x30, 0x2f, 0xf0, 0x1d, 0x71, 0x3b, 0x83, + 0x0f, 0x69, 0x85, 0x9e, 0x70, 0x02, 0x48, 0xf2, 0xdd, 0xb5, 0x9c, 0xc2, 0x96, 0x34, 0xbe, 0xdc, + 0x54, 0xc6, 0x6e, 0xd8, 0x8a, 0xb9, 0x44, 0xaa, 0xa6, 0x44, 0xf6, 0x01, 0xff, 0x25, 0xe6, 0x49, + 0xbe, 0x22, 0xc8, 0x08, 0xae, 0x14, 0xab, 0xfb, 0x47, 0x14, 0x97, 0xd7, 0x07, 0x75, 0xd1, 0x7d, + 0x2e, 0xdf, 0xc6, 0xba, 0x84, 0xc8, 0x46, 0xee, 0x12, 0xca, 0x58, 0x42, 0xd6, 0xe4, 0x63, 0x6d, + 0x34, 0xdf, 0x69, 0xc9, 0xef, 0x14, 0x93, 0xbf, 0x24, 0x24, 0xc7, 0x66, 0x56, 0x44, 0x2c, 0xf3, + 0xf1, 0x02, 0x92, 0x13, 0xaf, 0x09, 0x71, 0xc1, 0xa8, 0xef, 0xe9, 0x22, 0xd3, 0x25, 0x2e, 0x35, + 0x93, 0x15, 0x8f, 0x24, 0xe5, 0x0f, 0xc8, 0x61, 0xbc, 0x2e, 0x3a, 0x4b, 0xa7, 0xf4, 0x3e, 0xe1, + 0x89, 0x95, 0x7f, 0x4a, 0x84, 0x2e, 0x8e, 0x13, 0x5d, 0x5c, 0xa9, 0x08, 0x91, 0xb9, 0x38, 0xc6, + 0xd8, 0x6f, 0x42, 0xcd, 0xd8, 0xe7, 0xa0, 0x10, 0x22, 0xc7, 0xb2, 0x32, 0xa6, 0xd7, 0xa8, 0x0a, + 0x98, 0xdc, 0x52, 0xc6, 0x20, 0x7e, 0xe4, 0xa1, 0xbd, 0x0b, 0xde, 0x05, 0xf5, 0x42, 0xf1, 0x60, + 0x72, 0xe3, 0x2c, 0x8a, 0x3c, 0x83, 0x9a, 0xe3, 0x7a, 0x33, 0x6a, 0x2f, 0xe3, 0x9b, 0x68, 0xe4, + 0x0e, 0xcf, 0x43, 0xaa, 0xa3, 0x78, 0xcf, 0x58, 0x40, 0x70, 0x06, 0x0b, 0xd7, 0x1c, 0x70, 0x5e, + 0x5a, 0x10, 0x19, 0x27, 0x12, 0x68, 0x2a, 0x72, 0xcb, 0x73, 0xc3, 0x50, 0xc6, 0xd3, 0xef, 0x1b, + 0xf7, 0xfa, 0x33, 0x00, 0x9d, 0x93, 0xba, 0xb1, 0x66, 0x65, 0x97, 0x06, 0xa1, 0xf3, 0x18, 0x0b, + 0x9c, 0x2c, 0x67, 0x64, 0x45, 0x0b, 0x5a, 0xcb, 0xdd, 0x35, 0xb2, 0x1a, 0xfa, 0xc9, 0x46, 0x78, + 0x2c, 0xb1, 0x3a, 0x0e, 0xb2, 0xa0, 0x2b, 0x2e, 0xdb, 0xbd, 0xb1, 0xa7, 0xf4, 0xcc, 0x12, 0x53, + 0x2d, 0x7d, 0xb6, 0xd8, 0x0c, 0x1c, 0x67, 0x56, 0x26, 0x56, 0xdc, 0x05, 0x2c, 0x68, 0x85, 0x6b, + 0x6e, 0x59, 0x82, 0xe6, 0x6a, 0x3f, 0x21, 0x92, 0xc7, 0xe9, 0x96, 0xcd, 0xcd, 0x3b, 0x83, 0x62, + 0x03, 0x06, 0x2a, 0xe6, 0xdf, 0xa9, 0x90, 0xc4, 0x76, 0xcf, 0x87, 0x3b, 0x78, 0x57, 0x05, 0x5f, + 0xf5, 0x6f, 0x4b, 0xaf, 0x34, 0xeb, 0x11, 0x01, 0xf9, 0xe5, 0x2c, 0xc6, 0xd4, 0xf7, 0x21, 0xcc, + 0xb1, 0xe7, 0x39, 0x93, 0x07, 0x38, 0x50, 0xf2, 0x82, 0x79, 0xd0, 0x2f, 0x7c, 0x08, 0x05, 0x58, + 0x4b, 0x20, 0x67, 0xb5, 0xe4, 0xe6, 0x4b, 0xbe, 0x2e, 0xc4, 0xf7, 0x5d, 0x72, 0xef, 0xdb, 0x0a, + 0x3c, 0x9b, 0xce, 0x53, 0x43, 0x04, 0xab, 0x5c, 0x95, 0x56, 0xbe, 0xe1, 0x1e, 0x33, 0xf2, 0xc5, + 0x53, 0x64, 0x47, 0xeb, 0x3b, 0x84, 0x70, 0x8d, 0x4b, 0xc3, 0x41, 0xbf, 0x90, 0xf3, 0x97, 0xb8, + 0x0b, 0xa3, 0x33, 0xa1, 0xfe, 0xc8, 0x72, 0xda, 0x7a, 0x07, 0x57, 0x78, 0x60, 0xbc, 0xb4, 0xf5, + 0x08, 0x01, 0x17, 0xcb, 0x79, 0x3f, 0xb1, 0xc6, 0x9d, 0x5a, 0x4c, 0x4e, 0x2f, 0x0a, 0x07, 0xd4, + 0x09, 0x4a, 0x01, 0xf3, 0xad, 0x61, 0x54, 0xee, 0x8f, 0x4a, 0xc1, 0x74, 0x30, 0x60, 0x41, 0xb0, + 0x58, 0x9b, 0x35, 0xfc, 0xa5, 0x31, 0xa0, 0xc3, 0xa6, 0xce, 0x81, 0x2c, 0x67, 0xe8, 0xe6, 0x40, + 0xd4, 0xaa, 0xbb, 0xad, 0x61, 0x9d, 0x43, 0xcc, 0xa8, 0xef, 0xe4, 0x40, 0x0c, 0x87, 0x83, 0xaa, + 0xbe, 0xcd, 0x21, 0xf8, 0xd2, 0x55, 0x2e, 0x48, 0xb3, 0xd6, 0xac, 0x45, 0xc9, 0xbc, 0x45, 0x0e, + 0x48, 0xbd, 0x5e, 0x8f, 0xe4, 0x94, 0x52, 0x6e, 0x6e, 0x23, 0x2a, 0x9b, 0xa5, 0x3e, 0x8c, 0xbb, + 0xab, 0x85, 0x64, 0x48, 0x9b, 0xbf, 0x61, 0x32, 0x06, 0x93, 0x49, 0x2a, 0xbe, 0x60, 0xa2, 0x03, + 0xfc, 0x4a, 0x12, 0xf1, 0x25, 0x2a, 0xa7, 0x82, 0xd5, 0x05, 0x7f, 0x16, 0x41, 0x15, 0xb0, 0xbc, + 0x2d, 0x52, 0x25, 0x88, 0x58, 0x18, 0x58, 0x24, 0xcf, 0xed, 0xaa, 0xcc, 0x88, 0x03, 0xd6, 0x45, + 0xea, 0x0d, 0x58, 0x93, 0xc9, 0xac, 0x66, 0x32, 0xa1, 0xe4, 0x4a, 0x40, 0xbc, 0x88, 0xdf, 0xdb, + 0xe2, 0x3d, 0x05, 0x20, 0x42, 0xd3, 0xc5, 0xf2, 0xbd, 0x8d, 0xef, 0x51, 0x79, 0x86, 0x81, 0xf5, + 0x82, 0xcf, 0xb7, 0x72, 0xf1, 0x88, 0xca, 0x3c, 0xd4, 0x4e, 0x4b, 0x4c, 0x04, 0x66, 0x10, 0xf0, + 0x8a, 0xe5, 0x86, 0xbf, 0xd6, 0xe2, 0x57, 0xdc, 0x4b, 0x53, 0x9e, 0xcc, 0x93, 0x84, 0x12, 0x38, + 0x84, 0x98, 0x28, 0xc5, 0xac, 0x24, 0x26, 0x3d, 0x25, 0x98, 0x2f, 0x90, 0x90, 0x59, 0x7c, 0x72, + 0x50, 0xa2, 0xe1, 0x61, 0x95, 0xb1, 0x40, 0x72, 0x60, 0x34, 0x8e, 0x49, 0x4a, 0xb5, 0x26, 0x93, + 0x1a, 0xcb, 0xa4, 0x16, 0x4f, 0x9a, 0x2f, 0xa1, 0x78, 0xd3, 0x08, 0x19, 0x4b, 0x76, 0xdc, 0xb8, + 0x28, 0x9d, 0x9a, 0x37, 0x5d, 0xf0, 0x67, 0x3e, 0x4b, 0xdc, 0x16, 0x29, 0x32, 0x3b, 0x36, 0xcd, + 0xab, 0x84, 0xec, 0xf0, 0xdc, 0x24, 0x91, 0xd9, 0xb6, 0xe5, 0x05, 0x56, 0xd0, 0x99, 0x8d, 0xc1, + 0xda, 0x97, 0xf8, 0x12, 0x1d, 0xc8, 0xc1, 0xcc, 0xa7, 0x5e, 0x54, 0x4e, 0x4f, 0x3e, 0x2f, 0xc4, + 0x0b, 0xba, 0x04, 0x41, 0xd2, 0x52, 0x66, 0x49, 0x31, 0x03, 0x21, 0xd3, 0xa2, 0x72, 0x3c, 0x67, + 0xdd, 0x67, 0xe1, 0x0c, 0x37, 0x5e, 0x25, 0x73, 0xd8, 0x62, 0xd2, 0xa5, 0xcd, 0x5b, 0x8c, 0x73, + 0x97, 0xe0, 0xb2, 0xd1, 0x55, 0xe8, 0xb8, 0xe1, 0xa5, 0x53, 0xb2, 0xc0, 0xdd, 0x1c, 0x20, 0xfc, + 0x1e, 0x38, 0x0f, 0x2b, 0x59, 0xed, 0x31, 0x76, 0x73, 0x7d, 0x9c, 0xf8, 0xa3, 0x3e, 0xe5, 0x9b, + 0xc5, 0xe2, 0xdf, 0x72, 0x4d, 0x8d, 0xca, 0x78, 0x6a, 0x3c, 0x19, 0x09, 0x96, 0x83, 0xbb, 0xc2, + 0xc4, 0x48, 0xea, 0x08, 0x91, 0xaa, 0x23, 0x3b, 0xa4, 0x2c, 0xf1, 0xe7, 0x54, 0xbd, 0x3e, 0xf3, + 0x40, 0xcf, 0x01, 0xdd, 0xe4, 0x53, 0x3a, 0xcf, 0x73, 0x03, 0x4b, 0x0c, 0x1e, 0x89, 0x3b, 0x36, + 0x54, 0x42, 0xff, 0x2a, 0x8d, 0x19, 0x3f, 0xa1, 0x9e, 0xda, 0xe1, 0x22, 0x4e, 0xac, 0x07, 0xd7, + 0xa3, 0xe2, 0xcd, 0xc4, 0xee, 0xc4, 0xa7, 0xf5, 0x2f, 0xce, 0x8f, 0x4a, 0x3b, 0xda, 0x1e, 0x24, + 0x13, 0x48, 0x76, 0x70, 0x01, 0x24, 0x0c, 0xbd, 0x76, 0xa5, 0x32, 0x9b, 0xcd, 0xca, 0xb3, 0x7a, + 0xd9, 0xf5, 0x47, 0x95, 0x1a, 0x68, 0x3c, 0x2c, 0xa8, 0x88, 0xa5, 0x07, 0x43, 0xa9, 0xeb, 0x8a, + 0x9c, 0x9c, 0x17, 0xcf, 0xe2, 0x78, 0xd4, 0x8d, 0xa1, 0xe8, 0x44, 0x27, 0x75, 0xfc, 0xaf, 0x74, + 0xf7, 0x3c, 0x1a, 0x8e, 0x09, 0x78, 0x6e, 0x6f, 0x9b, 0x64, 0xbb, 0xdc, 0x1c, 0xd7, 0x74, 0x78, + 0xa8, 0xca, 0xef, 0x5a, 0x8d, 0xa7, 0xe0, 0xb2, 0x8a, 0xef, 0x5e, 0xe1, 0x2a, 0x1f, 0xca, 0x4a, + 0xfc, 0x5a, 0x92, 0xcd, 0x34, 0x92, 0x04, 0x24, 0xdd, 0x80, 0x7a, 0x86, 0xc2, 0xbb, 0xa6, 0x54, + 0x70, 0xb6, 0xfe, 0x7a, 0xd4, 0xdd, 0x52, 0x53, 0xaa, 0x2d, 0x5e, 0x86, 0xaa, 0x03, 0x21, 0x53, + 0x7b, 0xc1, 0x76, 0xe2, 0xd7, 0x99, 0xc8, 0xdf, 0xd6, 0xf5, 0x28, 0x6f, 0x1e, 0xb7, 0x1c, 0x3b, + 0xa2, 0x8b, 0xbe, 0x8b, 0x5a, 0x84, 0x9a, 0x20, 0xcb, 0x96, 0x83, 0x96, 0x5b, 0x27, 0xa5, 0xa6, + 0x77, 0x03, 0x5f, 0xbf, 0xb4, 0x76, 0x86, 0x51, 0x6a, 0x5e, 0x33, 0x56, 0x0d, 0x4d, 0x30, 0x1c, + 0x50, 0x61, 0xfc, 0xa6, 0xf3, 0x11, 0x7e, 0x23, 0xdf, 0x81, 0x7a, 0xc8, 0xda, 0xd5, 0x4a, 0x4b, + 0x55, 0x5e, 0xa5, 0x8e, 0xbb, 0x34, 0x87, 0x8d, 0x28, 0x7f, 0xb6, 0x34, 0x85, 0xd4, 0x9a, 0x6a, + 0x06, 0x5c, 0x1a, 0x39, 0xd5, 0x36, 0xe3, 0x6a, 0x39, 0xae, 0x7c, 0x36, 0x72, 0x5c, 0x15, 0x67, + 0x89, 0x13, 0x2d, 0xd5, 0xb9, 0xb3, 0x36, 0xbe, 0x3d, 0x2f, 0xd6, 0x0c, 0x50, 0x53, 0xe0, 0xda, + 0xe0, 0x37, 0x71, 0x14, 0x3b, 0x19, 0x7d, 0xb3, 0xbe, 0xd3, 0xe9, 0x6f, 0x75, 0xa2, 0x80, 0xc7, + 0x4b, 0xf2, 0xec, 0xea, 0xf1, 0x7b, 0x43, 0xd7, 0xe4, 0xf3, 0x29, 0xa3, 0xe6, 0x7b, 0xc7, 0x9e, + 0x1b, 0xd5, 0x65, 0x4a, 0x80, 0x47, 0x81, 0x4d, 0xa3, 0x16, 0xa7, 0x9c, 0x79, 0x96, 0x51, 0x8f, + 0x5f, 0x8e, 0x9d, 0x6b, 0x50, 0x52, 0xa6, 0x91, 0x1c, 0x2e, 0xea, 0xc8, 0xcd, 0x3a, 0xa2, 0xd1, + 0x05, 0xf7, 0xa5, 0xf0, 0x5c, 0x6d, 0x6a, 0xc3, 0x0e, 0x13, 0x7b, 0xa0, 0x29, 0x9e, 0xd2, 0xc9, + 0x71, 0xbf, 0x42, 0x16, 0x84, 0x05, 0x05, 0x3f, 0x15, 0x55, 0x63, 0x65, 0x67, 0xfd, 0x30, 0x31, + 0x7d, 0xe8, 0x30, 0x31, 0xcd, 0x3d, 0x4c, 0x5c, 0x76, 0xd4, 0x05, 0x2d, 0x1a, 0x2b, 0x87, 0xae, + 0x42, 0x35, 0x73, 0x3e, 0x3a, 0x92, 0x35, 0x53, 0x3c, 0xcd, 0xed, 0xf9, 0xac, 0xab, 0x14, 0x57, + 0x4f, 0x91, 0x69, 0xfc, 0xec, 0x62, 0x4d, 0x2d, 0x2a, 0x7b, 0x15, 0x0e, 0xa1, 0xd1, 0x68, 0xd5, + 0xfb, 0x92, 0x5b, 0xca, 0x57, 0xfb, 0x36, 0xa3, 0xf6, 0xd5, 0xf9, 0x18, 0x24, 0x6f, 0x24, 0x4e, + 0x5b, 0xaf, 0x76, 0xcb, 0x1a, 0x16, 0xb2, 0x67, 0x7a, 0xa8, 0x3c, 0x57, 0xb1, 0xb9, 0x19, 0x3f, + 0x1a, 0xf2, 0x1b, 0xcf, 0x70, 0x6a, 0xe2, 0xb4, 0x4f, 0x0c, 0xb4, 0x7a, 0x9e, 0x8c, 0x66, 0xcf, + 0x93, 0x2d, 0x38, 0x54, 0x5b, 0x42, 0x47, 0x6a, 0x14, 0xa9, 0x78, 0xde, 0x86, 0xd3, 0x1b, 0x0a, + 0x47, 0xcb, 0x43, 0x8a, 0xf0, 0xc6, 0xca, 0x62, 0x96, 0x42, 0x1e, 0xb2, 0xc4, 0x23, 0x4b, 0x98, + 0xf0, 0x2c, 0x39, 0x8f, 0xdf, 0x4e, 0x8e, 0x5d, 0x26, 0x79, 0xca, 0x05, 0xa4, 0x28, 0x6d, 0xe5, + 0x6c, 0x1e, 0xc0, 0xe0, 0x55, 0x92, 0xe3, 0xf3, 0xe0, 0x8e, 0x7b, 0xd3, 0x60, 0x8c, 0xc7, 0x5e, + 0x73, 0xe2, 0xe7, 0x24, 0xe8, 0x93, 0x07, 0xe2, 0x97, 0xdc, 0x10, 0xef, 0xab, 0xa4, 0x55, 0xa3, + 0x35, 0x2a, 0x02, 0xed, 0xe2, 0xf3, 0x49, 0x69, 0x8e, 0xd3, 0x67, 0xb4, 0xec, 0xb4, 0x97, 0x58, + 0x08, 0xb9, 0xb3, 0xc4, 0x21, 0x55, 0x3c, 0xe9, 0x67, 0xb0, 0x02, 0xd5, 0x42, 0x55, 0xb3, 0xe4, + 0xf9, 0x31, 0x62, 0xf1, 0x83, 0xcd, 0x65, 0x07, 0xc8, 0x6d, 0x89, 0x48, 0x3e, 0xa7, 0x2d, 0x5e, + 0x20, 0x29, 0x11, 0x45, 0xd9, 0x53, 0xd9, 0x8b, 0xfc, 0x62, 0x2b, 0x8c, 0x5e, 0xe7, 0xd4, 0xea, + 0xd9, 0x6e, 0x35, 0x8a, 0x8f, 0x0d, 0xa6, 0x05, 0xfe, 0xe1, 0xca, 0x43, 0x71, 0xfa, 0xb9, 0xec, + 0x59, 0xa6, 0x16, 0xf2, 0xa3, 0xac, 0x54, 0x4d, 0x0e, 0x93, 0xc9, 0x5a, 0x4f, 0x28, 0xc6, 0x2d, + 0x3f, 0x5a, 0x77, 0x08, 0xdd, 0xe6, 0x75, 0x6f, 0x6e, 0x8a, 0x8a, 0xd9, 0xe6, 0xa6, 0x95, 0xd3, + 0xc2, 0xca, 0x81, 0x61, 0x2a, 0xcf, 0x24, 0x77, 0x42, 0x79, 0x20, 0x3f, 0xa8, 0x81, 0xc8, 0xe4, + 0x1c, 0x16, 0xe7, 0x07, 0x90, 0x9f, 0x29, 0xa0, 0xc6, 0x3c, 0x9b, 0x81, 0x18, 0x09, 0xe0, 0xfa, + 0xbd, 0xc0, 0xfc, 0x4c, 0x4c, 0x5b, 0x19, 0xf9, 0x78, 0x96, 0xa7, 0x23, 0xd8, 0xcb, 0x23, 0xe3, + 0x03, 0xb1, 0x4f, 0xa2, 0xa0, 0xd4, 0xf0, 0xa0, 0x99, 0x6d, 0xdc, 0x73, 0x38, 0x7d, 0xcf, 0x68, + 0xe8, 0xcf, 0x6a, 0xed, 0x86, 0xe6, 0xdf, 0x07, 0x55, 0xb1, 0xb5, 0x40, 0x9c, 0x5d, 0x07, 0x5b, + 0x07, 0xfa, 0x86, 0x5b, 0x37, 0x48, 0x64, 0x65, 0x61, 0x79, 0x2b, 0x05, 0xbf, 0x58, 0x53, 0x61, + 0x48, 0x1a, 0x55, 0xfd, 0xd7, 0x40, 0x73, 0x0d, 0x1f, 0x3e, 0x4d, 0x51, 0x02, 0x1c, 0x43, 0x90, + 0xcb, 0xb8, 0x50, 0xc9, 0x51, 0x2b, 0x35, 0x55, 0x1b, 0xe3, 0xdd, 0x18, 0x56, 0x79, 0x60, 0x33, + 0xea, 0x9f, 0xe2, 0xb9, 0x3e, 0x5d, 0xd3, 0x35, 0x09, 0x92, 0xd4, 0x0a, 0x60, 0xe5, 0x1b, 0xc3, + 0x84, 0xcf, 0xb9, 0x11, 0x68, 0x56, 0xb9, 0xcf, 0xc0, 0x82, 0x9d, 0x40, 0x9d, 0x05, 0x10, 0x42, + 0x9c, 0x75, 0xb3, 0xcf, 0xf8, 0xce, 0x8c, 0x50, 0xbe, 0xf1, 0x8a, 0xa0, 0x08, 0x16, 0xd0, 0x1c, + 0xcd, 0xcd, 0x42, 0xf1, 0x13, 0x47, 0x78, 0x80, 0x48, 0xd1, 0x6a, 0x86, 0x61, 0x3f, 0xcb, 0x96, + 0x29, 0x56, 0xcb, 0x4d, 0xc0, 0x59, 0xd7, 0xb6, 0xe1, 0xb3, 0xfe, 0x6b, 0xa0, 0xb6, 0x57, 0xf2, + 0x6b, 0x32, 0xbf, 0x29, 0xf3, 0xb3, 0x75, 0xe3, 0x41, 0x80, 0xfb, 0xea, 0x05, 0x8c, 0x8a, 0x50, + 0x8a, 0xd7, 0xbe, 0x7d, 0x67, 0xed, 0x31, 0x54, 0x53, 0xfc, 0xaa, 0xeb, 0x7d, 0x06, 0x16, 0x19, + 0xbc, 0xc6, 0xa2, 0x82, 0x16, 0x1a, 0xa3, 0x4d, 0x25, 0x8b, 0x49, 0xdf, 0x06, 0xfb, 0x8e, 0x69, + 0x28, 0x01, 0x3d, 0xf4, 0xa1, 0x0d, 0x45, 0xee, 0xf0, 0x90, 0x80, 0xb8, 0x5f, 0xa0, 0x70, 0x97, + 0x54, 0x21, 0xc9, 0x8b, 0x31, 0x2e, 0x2d, 0xc4, 0x01, 0x3b, 0x85, 0x2a, 0x21, 0xb7, 0x91, 0x4c, + 0x27, 0x5a, 0xb2, 0x58, 0xb5, 0x06, 0x0f, 0x35, 0xd9, 0x87, 0x35, 0x42, 0xb1, 0xf9, 0x5a, 0xc1, + 0x3a, 0xef, 0xbd, 0x5b, 0xe2, 0x94, 0xe5, 0xd4, 0xe5, 0xd2, 0x7c, 0x6d, 0xe8, 0x2b, 0x57, 0x52, + 0xd8, 0xfc, 0x06, 0x8a, 0xec, 0xcd, 0x0b, 0x3e, 0xbf, 0x5f, 0x81, 0x0f, 0x33, 0x1f, 0x8d, 0x6d, + 0x30, 0xb3, 0xf0, 0x04, 0x65, 0x4e, 0x07, 0x93, 0xfb, 0x2a, 0xae, 0xbf, 0x81, 0x81, 0xc2, 0xcd, + 0x1c, 0x7a, 0x1b, 0x8a, 0x6c, 0xef, 0x68, 0xd5, 0xed, 0xba, 0xd6, 0xd4, 0xbf, 0x75, 0xf8, 0x26, + 0xb3, 0x0e, 0xcf, 0xaa, 0x62, 0x56, 0xad, 0x0a, 0x79, 0xf5, 0x5d, 0xad, 0xb1, 0x9b, 0xc9, 0xab, + 0x61, 0x5e, 0xb5, 0xd9, 0x82, 0x32, 0x5a, 0xad, 0xd1, 0x8a, 0xf3, 0x4c, 0xa1, 0xa9, 0x79, 0xe6, + 0x6e, 0x4d, 0x6b, 0xec, 0x68, 0xf5, 0x9d, 0x6f, 0x51, 0xba, 0xfb, 0x97, 0x3c, 0x58, 0x78, 0xba, + 0xf0, 0xc1, 0x80, 0x45, 0x1a, 0x7e, 0x57, 0xe5, 0x77, 0x8d, 0x7f, 0xd3, 0xaf, 0xd7, 0xc5, 0xe6, + 0xb7, 0x48, 0xbd, 0xe4, 0x32, 0x5f, 0x08, 0x8b, 0xe5, 0xa6, 0x0a, 0xbc, 0x5e, 0x15, 0x7e, 0x1c, + 0x16, 0x3a, 0x57, 0x41, 0xc8, 0x9c, 0x3f, 0xff, 0x64, 0x7b, 0x46, 0x75, 0x73, 0xb3, 0x81, 0xd2, + 0x57, 0x60, 0xb2, 0x8c, 0xd9, 0xae, 0x65, 0xdf, 0x8b, 0x3b, 0xbf, 0x06, 0xed, 0xd4, 0x2b, 0x72, + 0xcb, 0x2a, 0x53, 0x7f, 0x90, 0x0c, 0x99, 0x72, 0x83, 0x4b, 0x78, 0x4d, 0x5c, 0x4b, 0x71, 0x72, + 0x1c, 0xb3, 0xae, 0x70, 0x87, 0x20, 0xfe, 0x0c, 0x39, 0xbc, 0xd6, 0x64, 0xeb, 0xc5, 0xa0, 0xd2, + 0x50, 0xb5, 0xeb, 0x62, 0x31, 0x8a, 0x96, 0x27, 0x72, 0x57, 0x2c, 0x05, 0x9e, 0x85, 0x15, 0xdc, + 0x15, 0x46, 0x57, 0x70, 0x91, 0xef, 0xe5, 0x55, 0xda, 0x52, 0x0b, 0xf3, 0x1b, 0x66, 0x20, 0x01, + 0x14, 0xbc, 0x85, 0x61, 0x1b, 0x1e, 0x7c, 0xe7, 0x50, 0x83, 0x31, 0x1b, 0x5c, 0x81, 0xcf, 0x9c, + 0x81, 0x3c, 0x90, 0x89, 0x6b, 0xd0, 0x3e, 0xee, 0x9d, 0xcf, 0x80, 0x9e, 0x62, 0xca, 0x1a, 0x9c, + 0x3c, 0xd6, 0x97, 0x06, 0xdc, 0xe7, 0x49, 0x6b, 0x90, 0xf2, 0xf0, 0x5a, 0x1a, 0x52, 0xec, 0x99, + 0x58, 0x83, 0xf4, 0x7c, 0x77, 0x84, 0xa7, 0x1d, 0x32, 0xb0, 0x27, 0x32, 0x71, 0xbd, 0x5f, 0x14, + 0xdc, 0xd0, 0x2c, 0xec, 0x01, 0x4f, 0x5a, 0x87, 0x04, 0x45, 0x6c, 0xd6, 0x9f, 0x67, 0x41, 0x45, + 0xda, 0x1a, 0x2c, 0x0f, 0x79, 0xb3, 0x44, 0xc5, 0x94, 0x34, 0x5c, 0x22, 0xee, 0x4b, 0x98, 0x54, + 0x76, 0x14, 0x09, 0x67, 0x38, 0x4e, 0xe2, 0x87, 0x0c, 0x43, 0x7f, 0xca, 0x37, 0x32, 0x31, 0xe9, + 0x29, 0x5c, 0xcb, 0x4c, 0x43, 0xba, 0x3f, 0xb8, 0x2c, 0xcf, 0x6f, 0xe5, 0xc8, 0xe4, 0xa2, 0x39, + 0x2f, 0x2a, 0x65, 0xa5, 0x98, 0x4d, 0xb5, 0x4c, 0x35, 0x4a, 0x7b, 0xd6, 0xc6, 0xa5, 0x3c, 0x70, + 0x29, 0xd6, 0x0c, 0x1e, 0x57, 0x45, 0xa4, 0x90, 0x64, 0x45, 0x2a, 0x93, 0x25, 0xd6, 0xa7, 0xe2, + 0x05, 0x8c, 0x3b, 0x72, 0xe5, 0x61, 0xce, 0xd5, 0x5c, 0xe1, 0x63, 0x2e, 0x4f, 0x5e, 0x5e, 0x4a, + 0xa7, 0xbf, 0x43, 0x8d, 0x2c, 0xa0, 0xef, 0x3e, 0xc3, 0x03, 0xcb, 0xc9, 0xc9, 0x4c, 0x71, 0x56, + 0xf9, 0xe9, 0x22, 0x3e, 0xf2, 0xbf, 0xde, 0xe1, 0xf8, 0x3c, 0x73, 0x52, 0x84, 0xef, 0x66, 0xfb, + 0xc1, 0x1e, 0xdf, 0xdb, 0xa9, 0x6e, 0x7e, 0x6f, 0xe4, 0x1e, 0xb9, 0xa4, 0x5d, 0xaf, 0x7b, 0xd9, + 0x4e, 0xe3, 0x9e, 0xec, 0xff, 0xf8, 0xf1, 0x3e, 0xc4, 0x3f, 0x4f, 0x17, 0x2c, 0x5a, 0xab, 0x0e, + 0xda, 0x89, 0xaf, 0x3b, 0xc2, 0x4b, 0x8e, 0x04, 0xc5, 0x73, 0x10, 0xd4, 0x72, 0xee, 0x06, 0x91, + 0x3e, 0x11, 0xba, 0x1a, 0xe0, 0xf0, 0x96, 0x5d, 0xe7, 0xe2, 0xd8, 0xf8, 0xfa, 0x38, 0x2a, 0x7d, + 0x4b, 0x7b, 0xeb, 0xe9, 0x6b, 0x3a, 0x2c, 0x79, 0x3f, 0x48, 0x02, 0x2b, 0x02, 0xab, 0xcb, 0x64, + 0x8f, 0xe2, 0xa3, 0xf9, 0xf0, 0xfb, 0x72, 0xcf, 0xb8, 0x03, 0x85, 0x15, 0xe8, 0x68, 0x62, 0xed, + 0x92, 0xeb, 0x59, 0x56, 0x9a, 0x59, 0x53, 0x88, 0xd9, 0xf8, 0x8d, 0x07, 0x6e, 0x7c, 0x2d, 0x4c, + 0x49, 0x62, 0xb9, 0x9c, 0x5b, 0x3e, 0x92, 0xb1, 0xa6, 0x8a, 0x3b, 0x75, 0x38, 0x3b, 0xe2, 0xc0, + 0x34, 0xc9, 0xc4, 0xfb, 0x6b, 0x40, 0x61, 0xbf, 0xc3, 0xc7, 0xec, 0x3e, 0x44, 0x85, 0x17, 0x50, + 0xd4, 0x0e, 0x06, 0x19, 0xc9, 0x1e, 0x44, 0x43, 0x56, 0xd4, 0xce, 0xad, 0x21, 0x59, 0x6f, 0x03, + 0x52, 0xc5, 0x22, 0x22, 0x0b, 0x24, 0x02, 0x71, 0x59, 0xbc, 0xbf, 0x28, 0xde, 0x83, 0x23, 0xa2, + 0x3e, 0x16, 0x47, 0x7d, 0x02, 0xe7, 0x9c, 0x68, 0x33, 0xeb, 0xea, 0xaf, 0xb1, 0x44, 0x5b, 0x13, + 0x4b, 0x94, 0x11, 0xba, 0xb9, 0x29, 0x35, 0x1f, 0xf8, 0xf5, 0xd2, 0xc4, 0x08, 0xe1, 0x93, 0x0d, + 0xc6, 0x37, 0x69, 0xc4, 0x8c, 0xb2, 0xc0, 0x05, 0xb1, 0xf6, 0xc2, 0x8e, 0x15, 0xbb, 0x20, 0xe1, + 0x0f, 0xa8, 0xaf, 0xa2, 0xf2, 0x8b, 0x52, 0xb4, 0xe4, 0x7d, 0x52, 0x61, 0x8a, 0x42, 0xb2, 0xb1, + 0xaf, 0xd6, 0xb7, 0x4e, 0x72, 0xbd, 0x90, 0xd0, 0x8b, 0x34, 0xa9, 0x8c, 0x72, 0x9c, 0xd7, 0x38, + 0x13, 0xca, 0x93, 0x3f, 0x99, 0x23, 0xdd, 0xb8, 0xd8, 0x28, 0xd6, 0x5c, 0x7d, 0x77, 0x26, 0x6e, + 0x9e, 0x11, 0x17, 0xf1, 0xac, 0x69, 0x23, 0x41, 0xdd, 0x25, 0x17, 0x12, 0x9c, 0xe2, 0xcb, 0x57, + 0xb2, 0xa9, 0x09, 0x1f, 0xda, 0xab, 0x05, 0x79, 0x72, 0xa6, 0x90, 0x3c, 0xb3, 0x2d, 0x0b, 0x44, + 0x5c, 0xf0, 0xe4, 0x79, 0xce, 0x1f, 0x11, 0x3d, 0x59, 0x04, 0x85, 0xef, 0xcf, 0x3f, 0x0b, 0xc0, + 0xfa, 0xc3, 0x54, 0x9a, 0x96, 0x5b, 0x03, 0x84, 0xed, 0xcc, 0x31, 0x0f, 0x70, 0xa7, 0x35, 0x04, + 0x9b, 0xaa, 0x96, 0x95, 0x59, 0x59, 0x58, 0x20, 0x84, 0x67, 0xe4, 0x96, 0xca, 0xfa, 0x07, 0xae, + 0xd6, 0x93, 0x57, 0xc2, 0x29, 0xed, 0x4b, 0x39, 0x87, 0x9a, 0x73, 0x5e, 0x5f, 0xde, 0x9c, 0x15, + 0x55, 0xb0, 0x95, 0xca, 0xa5, 0xb6, 0x7a, 0xdf, 0x08, 0xd5, 0x04, 0x02, 0x59, 0xd9, 0xd4, 0x56, + 0xa2, 0x67, 0x01, 0x93, 0xbe, 0x61, 0x8a, 0xaa, 0xb2, 0x60, 0x19, 0x6c, 0xb0, 0xf1, 0x44, 0xcf, + 0xdc, 0x0a, 0xa2, 0xa4, 0x86, 0xbf, 0x38, 0x02, 0x28, 0xd7, 0xa4, 0x41, 0x0e, 0x40, 0x84, 0x64, + 0x49, 0x1e, 0x73, 0xaf, 0x44, 0xf3, 0xcc, 0xd8, 0x52, 0x38, 0xb3, 0x94, 0xf6, 0x56, 0x71, 0xfd, + 0xb6, 0xb2, 0x9f, 0x39, 0xf4, 0xd6, 0xc7, 0xdd, 0xb3, 0x8c, 0xfa, 0x5d, 0x2a, 0xb0, 0x54, 0xb7, + 0x2f, 0x17, 0x3f, 0x60, 0xf3, 0xda, 0x0b, 0xb4, 0x2e, 0x51, 0x74, 0xa9, 0xaa, 0xed, 0x82, 0x22, + 0xaf, 0x16, 0x60, 0xa0, 0x2e, 0x35, 0xa2, 0xa8, 0xda, 0xff, 0x93, 0xc6, 0x12, 0xb1, 0x6c, 0xaf, + 0x15, 0x85, 0x92, 0x19, 0x62, 0x96, 0x43, 0xf7, 0x8c, 0xcf, 0xb1, 0x15, 0xea, 0x2d, 0xb5, 0x1c, + 0xe0, 0xec, 0x66, 0xa1, 0xa6, 0x46, 0x0a, 0xc7, 0x37, 0x71, 0xa5, 0xd2, 0x6e, 0x2d, 0x81, 0x67, + 0x10, 0xea, 0x94, 0x7f, 0xb5, 0x32, 0x13, 0x23, 0x74, 0xc6, 0x4f, 0xe1, 0x0e, 0x4b, 0x71, 0x47, + 0xce, 0x76, 0x05, 0x53, 0x0f, 0xaa, 0xcc, 0x34, 0x79, 0x19, 0x0b, 0xcb, 0x57, 0xe8, 0xee, 0xa3, + 0x7a, 0x07, 0xa4, 0x7f, 0x24, 0xe4, 0xb7, 0x4b, 0xb5, 0x7d, 0x5f, 0x93, 0x8f, 0xad, 0xe7, 0x32, + 0xa1, 0xe5, 0xaa, 0xe3, 0xbf, 0x4e, 0xcf, 0xcc, 0x6d, 0x33, 0xd2, 0x98, 0x0a, 0x1c, 0x52, 0x39, + 0xff, 0xdf, 0x5d, 0xce, 0xc4, 0xa7, 0x4c, 0x1f, 0x63, 0x10, 0xb1, 0xcd, 0x84, 0xdf, 0xa8, 0x22, + 0xfd, 0xb4, 0x4b, 0x75, 0xd5, 0xee, 0x0b, 0xdc, 0xb3, 0x89, 0x4b, 0x7d, 0xb9, 0xb9, 0x99, 0x31, + 0xac, 0x19, 0xcd, 0xcd, 0x6b, 0x67, 0xa6, 0x91, 0xf1, 0xb4, 0xa4, 0x21, 0x30, 0x19, 0x44, 0x74, + 0x13, 0xcb, 0x01, 0x82, 0x18, 0xa5, 0xaa, 0xb1, 0xd4, 0xef, 0x2b, 0xe2, 0x98, 0xc3, 0xbd, 0x94, + 0x76, 0xc9, 0x5e, 0xc1, 0xb8, 0x57, 0xae, 0xd7, 0x9f, 0x95, 0xaa, 0xed, 0x95, 0xc4, 0x56, 0xeb, + 0x99, 0xde, 0xae, 0x2e, 0x87, 0x43, 0x26, 0x20, 0xfb, 0x6f, 0xc4, 0x3f, 0xa0, 0x86, 0xa1, 0xe8, + 0xf0, 0x4d, 0x6f, 0x0c, 0xa5, 0xd6, 0x6c, 0xfe, 0x18, 0x47, 0x7f, 0xcc, 0x85, 0xf4, 0xaf, 0x1f, + 0xf0, 0xd7, 0x1f, 0x27, 0x07, 0x1d, 0xa1, 0xcb, 0x7f, 0xc4, 0x75, 0xc1, 0xa6, 0xb9, 0xe2, 0x5e, + 0x95, 0x9b, 0xac, 0x75, 0xfd, 0x2b, 0xd2, 0x90, 0xb9, 0x24, 0xb3, 0xb9, 0x62, 0x76, 0x12, 0xf6, + 0x67, 0xc3, 0xec, 0xbf, 0xcb, 0xf8, 0x5d, 0x86, 0x8c, 0x77, 0xc7, 0x47, 0xe9, 0xc0, 0xf1, 0x11, + 0x94, 0xc3, 0x1b, 0x7f, 0x24, 0x4d, 0xb2, 0x13, 0x0a, 0x7f, 0x99, 0x26, 0xf2, 0x92, 0xac, 0x9f, + 0x1a, 0x55, 0x26, 0xb7, 0x24, 0xad, 0x4b, 0x24, 0xde, 0x07, 0x78, 0xaf, 0x72, 0x52, 0xe3, 0x98, + 0x25, 0xe5, 0xaa, 0xf2, 0x62, 0xb1, 0xec, 0x89, 0x1b, 0x99, 0x02, 0x79, 0x79, 0x27, 0x57, 0x4d, + 0x01, 0x0b, 0x7b, 0xa1, 0xb8, 0xd2, 0x9d, 0x15, 0x14, 0x09, 0x80, 0x3e, 0x8f, 0x7c, 0x4c, 0xfb, + 0x8a, 0xa3, 0x5c, 0xd8, 0xc4, 0xc5, 0xd1, 0xb3, 0x6b, 0x69, 0x0f, 0x96, 0x8b, 0x6f, 0x43, 0xd4, + 0xa0, 0x0a, 0x6a, 0xe4, 0xaa, 0xd4, 0xe5, 0x10, 0x09, 0xc1, 0x1f, 0xc5, 0x49, 0xaf, 0xf8, 0x32, + 0xc7, 0x95, 0x2e, 0xc9, 0x89, 0x92, 0x15, 0xb7, 0x5b, 0xde, 0xf5, 0xb7, 0x86, 0xda, 0xb2, 0x58, + 0x4e, 0x29, 0x0c, 0x52, 0x33, 0x97, 0x5a, 0x3d, 0x5d, 0x60, 0xcb, 0xa8, 0x3f, 0xa2, 0xe4, 0x52, + 0xab, 0xcb, 0x28, 0x47, 0x99, 0xe4, 0xf8, 0xf1, 0x39, 0x50, 0x6a, 0xfe, 0x6a, 0x90, 0xb0, 0x2e, + 0xb9, 0x23, 0x3e, 0xa6, 0x18, 0xb8, 0x0c, 0xcc, 0x72, 0x80, 0x5e, 0xb7, 0x33, 0x86, 0x57, 0x58, + 0x99, 0x3e, 0x7c, 0x7d, 0xdb, 0x52, 0xb5, 0x1f, 0xb6, 0x1a, 0x7a, 0x8e, 0xd1, 0xa8, 0xb6, 0x6b, + 0x4b, 0xad, 0xb1, 0x3a, 0x8d, 0xf6, 0x97, 0xc7, 0x48, 0x3c, 0x49, 0x27, 0xd4, 0xfc, 0xaa, 0xd0, + 0x43, 0x62, 0xa4, 0xfc, 0xc5, 0x01, 0x94, 0x4c, 0xff, 0x75, 0x71, 0x89, 0x55, 0x3c, 0x77, 0x53, + 0x9e, 0x4b, 0x66, 0x72, 0xef, 0x71, 0xf8, 0x67, 0x1b, 0x43, 0x87, 0x3f, 0x66, 0x69, 0x26, 0x51, + 0xc6, 0x0f, 0x31, 0xdd, 0x33, 0xfd, 0x15, 0xd3, 0x8c, 0x3f, 0x5b, 0x27, 0x88, 0x5a, 0x1f, 0x69, + 0xa5, 0xee, 0x11, 0x2f, 0x1c, 0x35, 0x86, 0x91, 0xd7, 0xcd, 0x5c, 0x11, 0xc2, 0x2c, 0xf0, 0x1a, + 0x8f, 0x7e, 0x07, 0x13, 0xc9, 0xec, 0xda, 0x4d, 0xad, 0x54, 0x6d, 0xdd, 0x54, 0x5b, 0xe2, 0x2e, + 0xef, 0x07, 0xe4, 0x4e, 0x71, 0x2a, 0x14, 0x60, 0x12, 0xa7, 0x3c, 0x3d, 0x2d, 0xfa, 0x00, 0x37, + 0x84, 0x4f, 0x0e, 0x83, 0x17, 0x63, 0xcd, 0xbf, 0x36, 0x67, 0x64, 0x2a, 0xdd, 0x4b, 0x8d, 0x97, + 0x7d, 0xfc, 0x3c, 0x9b, 0x2c, 0x20, 0x66, 0x00, 0x7e, 0x2a, 0x03, 0x2f, 0xd7, 0xe7, 0xc2, 0x30, + 0xa6, 0xda, 0x0b, 0xf9, 0x1f, 0x07, 0xd9, 0x0b, 0xfd, 0xee, 0xf2, 0x2e, 0x52, 0x9a, 0x37, 0xa7, + 0x25, 0x10, 0x1b, 0x4b, 0xac, 0xb2, 0xb3, 0x1b, 0xe9, 0xd6, 0xe9, 0xb2, 0x45, 0x28, 0x42, 0x79, + 0xe0, 0xca, 0xe7, 0xba, 0xc2, 0x31, 0x34, 0x21, 0x1f, 0xfd, 0x2e, 0xbe, 0x63, 0xcb, 0x4a, 0xb4, + 0x66, 0x31, 0x12, 0xd4, 0x70, 0x82, 0xa4, 0xbb, 0xae, 0x3f, 0x73, 0xa7, 0xdc, 0x12, 0xfd, 0x97, + 0x9d, 0xfe, 0xe9, 0x52, 0xf4, 0x73, 0x56, 0xe6, 0x84, 0x52, 0x3b, 0x2e, 0xf8, 0xba, 0x14, 0x15, + 0xeb, 0x52, 0xa2, 0xd1, 0x07, 0x09, 0x21, 0xe1, 0x00, 0x75, 0xec, 0xd8, 0xfa, 0x0a, 0x79, 0xe6, + 0x1a, 0x7b, 0x9a, 0xa8, 0x65, 0x4e, 0x0c, 0x31, 0x59, 0x14, 0x7e, 0x53, 0x63, 0x9a, 0x20, 0x01, + 0x12, 0x9a, 0x24, 0x8f, 0xa2, 0xe3, 0xf1, 0xbc, 0xa0, 0x4c, 0xc4, 0xe6, 0x45, 0x9b, 0xf1, 0xc4, + 0xa1, 0xc6, 0x56, 0xc7, 0xe2, 0x5d, 0xd3, 0x09, 0x7c, 0x26, 0x69, 0x65, 0x4c, 0x26, 0x5a, 0x2a, + 0xbb, 0xae, 0xf0, 0xd7, 0x5d, 0x91, 0x9f, 0x3e, 0xbd, 0x9d, 0xb9, 0x95, 0xd1, 0x99, 0x4e, 0xfa, + 0x78, 0xa0, 0x9c, 0x5f, 0xa2, 0x38, 0x76, 0x6d, 0x93, 0xf9, 0x86, 0x72, 0x83, 0x9b, 0xcc, 0x1e, + 0x84, 0x9a, 0x3f, 0x0a, 0xea, 0x56, 0x6c, 0x58, 0xfb, 0x29, 0x21, 0x59, 0x3a, 0x22, 0xb3, 0x6c, + 0x13, 0xe7, 0xb6, 0x02, 0x94, 0x01, 0x29, 0x86, 0x37, 0xf9, 0x10, 0x5f, 0xf5, 0x6f, 0x2b, 0xd1, + 0x5c, 0x2a, 0x27, 0x3b, 0x2b, 0x57, 0xbe, 0xc1, 0x99, 0x24, 0xf1, 0x38, 0xbf, 0xa3, 0xb6, 0xea, + 0x9d, 0xb5, 0x55, 0x57, 0x6b, 0x9b, 0x2f, 0x6b, 0xbb, 0xbd, 0xa3, 0xb6, 0xda, 0x9d, 0xb5, 0xd5, + 0x56, 0x6b, 0xbb, 0x55, 0x1f, 0xe3, 0x0c, 0x27, 0x53, 0x02, 0x0b, 0x60, 0x63, 0xfb, 0xe9, 0xa2, + 0xde, 0xd2, 0xb3, 0x01, 0x44, 0xa4, 0x11, 0x60, 0xdd, 0x5d, 0x39, 0xb7, 0xf9, 0x39, 0xd1, 0x65, + 0xfe, 0x55, 0x93, 0x5c, 0xbf, 0x66, 0xb7, 0xed, 0xb6, 0xbc, 0x1b, 0xb9, 0x43, 0x1c, 0x04, 0xaf, + 0x90, 0xb9, 0xc8, 0x4e, 0x8d, 0xe4, 0x8c, 0xd0, 0x42, 0xec, 0x51, 0xc4, 0x3a, 0xda, 0x56, 0x48, + 0x6d, 0x6b, 0x10, 0xef, 0x0a, 0xb6, 0xd9, 0x70, 0xbd, 0x8a, 0xcc, 0xad, 0x77, 0x6a, 0xc4, 0x65, + 0x2e, 0xb3, 0x2b, 0xbd, 0xbf, 0x53, 0x35, 0xab, 0x66, 0xa6, 0xcc, 0xf2, 0xda, 0x33, 0x35, 0xb5, + 0x23, 0x92, 0x6f, 0x20, 0xc6, 0xc5, 0x86, 0x45, 0xba, 0xbd, 0x9a, 0xce, 0xb7, 0x01, 0xf3, 0x61, + 0x99, 0xde, 0xd1, 0xde, 0x83, 0x81, 0x63, 0x6b, 0x2f, 0x99, 0x2d, 0x6e, 0xe4, 0xd1, 0x96, 0x3b, + 0xdc, 0x3b, 0xcb, 0xcb, 0xfc, 0x6c, 0xea, 0x05, 0xac, 0x1d, 0x3f, 0x74, 0x96, 0x1b, 0xa6, 0x63, + 0x18, 0xbc, 0x08, 0x71, 0x1a, 0x88, 0xeb, 0x06, 0x65, 0x92, 0xe8, 0xb9, 0xdc, 0x41, 0x9c, 0xda, + 0xc6, 0xa8, 0xf3, 0xdd, 0x8b, 0xb8, 0xf7, 0x10, 0x6f, 0x96, 0x94, 0x28, 0x91, 0xd0, 0xd4, 0xe2, + 0xa7, 0xf1, 0x42, 0xd4, 0x90, 0xde, 0x9f, 0x88, 0x5b, 0xf2, 0xe3, 0xed, 0x89, 0x48, 0xb9, 0xf8, + 0x0a, 0x17, 0xb9, 0x8d, 0x39, 0x74, 0xbd, 0x68, 0x59, 0x3c, 0xb5, 0xbf, 0x19, 0xbb, 0xbe, 0xbe, + 0x19, 0x52, 0x52, 0x6f, 0x1c, 0xd3, 0xee, 0x4e, 0x56, 0xe6, 0x6c, 0x82, 0x4c, 0x96, 0xad, 0x93, + 0x7d, 0x62, 0x52, 0xb1, 0x29, 0xcf, 0xd9, 0xc4, 0x55, 0x96, 0xcb, 0xda, 0xd9, 0x3f, 0x43, 0xb2, + 0x58, 0xcb, 0x28, 0x38, 0x89, 0x4a, 0xac, 0x1a, 0x06, 0xde, 0x9c, 0x9e, 0x73, 0x8d, 0xb3, 0xd4, + 0x3a, 0xd6, 0x04, 0xff, 0xe6, 0xd5, 0x84, 0x7a, 0xca, 0xf2, 0x48, 0x98, 0x4c, 0x04, 0xc7, 0x3a, + 0x75, 0x8e, 0x50, 0x09, 0xf1, 0xda, 0x17, 0x48, 0x52, 0xe2, 0xcb, 0xdd, 0xa6, 0x8e, 0x77, 0x35, + 0xe2, 0x77, 0xbb, 0xf1, 0xac, 0x7f, 0xe8, 0xe5, 0x6a, 0xb3, 0x55, 0xae, 0x56, 0xfa, 0x53, 0x18, + 0x85, 0x22, 0x4d, 0xce, 0x1a, 0x82, 0x63, 0xa4, 0x68, 0x2b, 0x35, 0xe1, 0x8d, 0x12, 0x60, 0x18, + 0x2a, 0x8f, 0xa9, 0x51, 0x5e, 0xf0, 0x12, 0x54, 0xbe, 0x07, 0x93, 0x8a, 0x92, 0x3d, 0x49, 0x4f, + 0x52, 0x3d, 0xab, 0xc8, 0x3f, 0x2a, 0xc6, 0xaf, 0x32, 0xe3, 0xf7, 0xe2, 0xe2, 0x6a, 0x06, 0x71, + 0x1d, 0xdb, 0xa5, 0x66, 0xe6, 0x00, 0x5a, 0xfc, 0x27, 0x73, 0xd0, 0x89, 0xe4, 0x86, 0x8d, 0x00, + 0x85, 0xf8, 0x5f, 0x26, 0xfb, 0x3f, 0xdd, 0x35, 0xcc, 0x82, 0xb1, 0x6c, 0x00, 0x00 }; From 7969b687eddd70c2be295a4e92cca663fb041177 Mon Sep 17 00:00:00 2001 From: Ewoud Date: Tue, 19 Nov 2024 17:08:45 +0100 Subject: [PATCH 2/5] newui add table part 2 + small changes newui index.htm / theme.css: - copy to newui folder index.js: - add Live.on checkbox for testing: conditional generateData - add cCE function mainnav - createHTMLFun with parent modules.css - add body, h1, h2, div, select, option, a, textarea, canvas, module, tooltip, selected - table width 0 modules.js - createHTML: not return code but create in dom directly - setDefaultValues; deactivate (wip) - generateData: not for top level vars / modules - findVar bugfix - add NumberVariable modules.js / Variable - add pidid() - add createNode - add receiveValue - add ReceiveComment - refactor createHTML and receiveData and generateData - add generateValue - derived classes: use the new functions package.json: add node >=20, change license to GPT-v3 SysModModel = walkthroughmodel: return JsonObject - findVar(s) cleanup a bit --- data/newui/index.htm | 2 +- data/newui/index.js | 6 + data/newui/mainnav.js | 6 +- data/newui/modules.css | 162 ++++- data/newui/modules.js | 630 +++++++++++--------- data/newui/theme.css | 98 +++ package-lock.json | 5 +- package.json | 7 +- src/App/AppModDemo.h | 2 + src/Sys/SysModInstances.h | 2 +- src/Sys/SysModModel.cpp | 45 +- src/Sys/SysModModel.h | 6 +- src/html_newui.h | 1190 +++++++++++++++++++------------------ 13 files changed, 1251 insertions(+), 910 deletions(-) create mode 100644 data/newui/theme.css diff --git a/data/newui/index.htm b/data/newui/index.htm index 9aaef9c6..5b670ae8 100644 --- a/data/newui/index.htm +++ b/data/newui/index.htm @@ -19,7 +19,7 @@ - + diff --git a/data/newui/index.js b/data/newui/index.js index 570aa473..a2c13874 100644 --- a/data/newui/index.js +++ b/data/newui/index.js @@ -36,6 +36,10 @@ class Controller { this.theme.getTheme(); // body.innerHTML += "

" + if (window.location.href.includes("127.0.0.1")) { + //add checkbox + body.innerHTML += `` + } this.mainNav = new MainNav(this.modules.model); this.mainNav.createHTML(); @@ -69,6 +73,7 @@ class Controller { // every 1 second window.setInterval(function() { + if (gId("Live.on").checked) controller.modules.generateData() //generates data for each variabe in model }, 1000); @@ -215,6 +220,7 @@ const UINT16_MAX = 256*256-1; function gId(c) {return document.getElementById(c);} function cE(e) { return document.createElement(e); } +function cCE(p, e) {let n = document.createElement(e); p.appendChild(n); return n; } //add node to parent function isLowerCase(s) { return s.toLowerCase() == s diff --git a/data/newui/mainnav.js b/data/newui/mainnav.js index 3070e757..4d5c0dd3 100644 --- a/data/newui/mainnav.js +++ b/data/newui/mainnav.js @@ -105,14 +105,14 @@ class MainNav { // Update the page content if (this.#createHTMLFun) { - gId('page').innerHTML = + gId('page').innerHTML = `

${this.#activeModuleJson.id}

-
` + this.#createHTMLFun(this.#activeModuleJson) + - `
+
` + this.#createHTMLFun(this.#activeModuleJson, gId("Module.main")) } //done after innerHTML as it needs to find the nodes. tbd: createHTMLFun adds to dom directly if (this.#setDefaultValuesFun) { diff --git a/data/newui/modules.css b/data/newui/modules.css index e1d55230..7172e7bf 100644 --- a/data/newui/modules.css +++ b/data/newui/modules.css @@ -9,26 +9,85 @@ @license For non GPL-v3 usage, commercial licenses must be purchased. Contact moonmodules@icloud.com */ +body { + font-family: Arial, Helvetica, sans-serif; + background: black; + color: var(--text-color); + font-size: var(--font-size); +} + +h1,h2 { + color: var(--h-color); + line-height: 5px; +} + +div { + line-height: 2.0; /* 1.6 is recommended height */ +} + /* default nodes */ label { - margin-right: 6px; /*space after*/ - color: var(--label-color); - } - - comment { - /* font-size: 10px; */ - font-style: italic; - margin-left: 6px; /*space before*/ - color: var(--comment-color); - } - - input { - background: #b81d1d; - color: var(--text-color); - font-size: 8px; /*var(--font-size-s) not working for some reason */ - } - - .ndiv { + margin-right: 6px; /*space after*/ + color: var(--label-color); +} + +comment { + /* font-size: 10px; */ + font-style: italic; + margin-left: 6px; /*space before*/ + color: var(--comment-color); +} + +input { + background: grey; + color: var(--text-color); + font-size: 12px; /*var(--font-size-s) not working for some reason */ +} + +/* input[type="button"] { + padding: 7px; +} +*/ + + select { + background: transparent; + color: var(--text-color); + font-size: 12px; /*var(--font-size-s) not working for some reason */ +} + +option { + color: var(--text-color); + background: var(--bg-color); +} + +a { + color: var(--h-color); + text-decoration: none; +} + +/* text { /*currently only for buttonSaveNode and buttonCancelNode + font-size: 10px; +} */ + +/* For textarea variables */ +textarea { + width: 100%; + height: 100%; + border-radius: 12px; + background: transparent; + color: var(--text-color); +} + +canvas { + width: 100%; + height: 100%; + border-radius: 12px; + border: 1px solid black; + background: transparent; + cursor: default; +} + +.ndiv { /* border: 2px solid black; */ margin-left: 20px; /* border-radius: 12px; */ @@ -38,7 +97,7 @@ label { .table { font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; - width: 100%; + width: 0; border-radius: 10px; /*does not seem to work */ border-style: hidden; /* hide standard table (collapsed) border */ box-shadow: 0 0 0 1px #666; /* this draws the table border */ @@ -57,3 +116,68 @@ label { background-color: var(--th-color); color: var(--label-color); } + +.module, .appmod, .sysmod, .usermod { + border: 2px solid var(--border-color); + /* background-color: #ddd; */ + /* background: linear-gradient(to bottom, #33ccff 0%, #ff99cc 100%); */ + background: var(--bg-color); /* linear-gradient(to bottom, #ffbe33 0%, #b60f62 100%); */ + border-radius: 10px; /* from .5em */ + padding: 5px; + margin: 5px; /*space around modules */ + cursor: move; +} + + +.tooltip { + position: relative; + display: inline-block; + border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ + } + + /* Tooltip text */ + .tooltip .tooltiptext { + visibility: hidden; + width: 120px; + background-color: var(--bg-color); + font-style: italic; + color: var(--comment-color); + text-align: center; + padding: 5px 0; + border-radius: 6px; + /* font-size: 10px; SM */ + + /* Position the tooltip text */ + position: absolute; + z-index: 1; + bottom: 125%; + left: 50%; + margin-left: -60px; + + /* Fade in tooltip */ + opacity: 0; + transition: opacity 0.3s; + } + + /* Tooltip arrow */ + .tooltip .tooltiptext::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #555 transparent transparent transparent; + } + + /* Show the tooltip text when you mouse over the tooltip mdlContainer */ + .tooltip:hover .tooltiptext { + visibility: visible; + opacity: 1; + } + + /*used for view buttons*/ + .selected { + background: var(--select-color); + } \ No newline at end of file diff --git a/data/newui/modules.js b/data/newui/modules.js index 18b2dbe8..dc0e9e66 100644 --- a/data/newui/modules.js +++ b/data/newui/modules.js @@ -19,8 +19,8 @@ class Modules { //generates html for a module //for some strange reason, this method does not accept this.otherMethodInThisClass ??? - createHTML(moduleJson) { - let code = "" + createHTML(moduleJson, parentNode) { + parentNode.innerHTML = `
` controller.modules.test("test") // this.test("ew") //this.otherMethodInThisClass: [Error] Unhandled Promise Rejection: TypeError: this.test is not a function. (In 'this.test("ew")', 'this.test' is undefined) @@ -29,20 +29,22 @@ class Modules { return Math.abs(a.o) - Math.abs(b.o); //o is order nr (ignore negatives for the time being) }); + //all variables of module for (let variable of moduleJson.n) { let variableClass = varJsonToClass(variable); - code += variableClass.createHTML() + variableClass.createHTML(gId(`m.${moduleJson.id}`)) } - code += '
' + JSON.stringify(moduleJson, null, 2) + '
' - return code + + gId(`m.${moduleJson.id}`).innerHTML += '
' + JSON.stringify(moduleJson, null, 2) + '
' } //done after innerHTML as it needs to find the nodes. tbd: createHTMLFun adds to dom directly setDefaultValues(moduleJson) { + return; // console.log("setDefaultValues", moduleJson) controller.modules.walkThroughModel(function(parent, variable) { //this.walkThroughModel not working for some reason??? - if (Array.isArray(variable.value)) variable.value = variable.value[0] //temp hack to deal with table values + // if (Array.isArray(variable.value)) variable.value = variable.value[0] //temp hack to deal with table values if (variable.value != null) { let variableClass = varJsonToClass(variable); @@ -58,7 +60,7 @@ class Modules { //used by fetchModel and by makeWS addModule(moduleJson) { - moduleJson.type = moduleJson.type=="appmod"?appName():moduleJson.type=="usermod"?"User":"System"; + moduleJson.type = moduleJson.type=="appmod"?appName():moduleJson.type=="usermod"?"User":"System"; //to display proper name this.model.push(moduleJson); //updateUI is made after all modules have been fetched, how to adapt to add one module? @@ -69,9 +71,8 @@ class Modules { //walkthrough, if a variable is returned by fun, it stops the walkthrough with this variable walkThroughModel(fun, parent = null) { for (let variable of parent?parent.n:this.model) { - let foundVar = null - foundVar = fun(parent, variable); + let foundVar = fun(parent, variable); if (foundVar) return foundVar; if (variable.n) { @@ -84,8 +85,11 @@ class Modules { //loop through the model hierarchy and generateData data for each variable in the model generateData() { this.walkThroughModel(function(parent, variable) { - let variableClass = varJsonToClass(variable); - variableClass.generateData(); + if (parent) { //no need to send modules + let variableClass = varJsonToClass(variable); + // console.log(variableClass.pidid()) + variableClass.generateData(); + } }) } @@ -93,7 +97,7 @@ class Modules { findVar(pid, id) { // console.log("findVar", id, parent, model); return this.walkThroughModel(function(parent, variable) { - if (variable.pid == pid, variable.id == id) //found variable + if (variable.pid == pid && variable.id == id) //found variable return variable; //this stops the walkThrough }) } @@ -213,6 +217,8 @@ function varJsonToClass(variable) { switch (variable.type) { case "text": return new TextVariable(variable); + case "number": + return new NumberVariable(variable); case "checkbox": return new CheckboxVariable(variable); case "range": @@ -238,54 +244,116 @@ class Variable { constructor(variable) { this.variable = variable - this.node = gId(this.variable.pid + "." + this.variable.id); + this.node = gId(this.pidid()); //for tables this is the header row } - createHTML(node = ``) { + pidid(rowNr = UINT8_MAX) { + if (rowNr == UINT8_MAX) + return this.variable.pid + "." + this.variable.id + else + return this.variable.pid + "." + this.variable.id + "#" + rowNr + } - let code + createNode(parentNode, rowNr = UINT8_MAX) { + let node if (this.variable.ro) { - code = `

- - ${this.variable.value} -

` - - } else - { - code = `

- - ${node} -

` + node = `${this.variable.value}` + } else { + node = `` } + parentNode.innerHTML += node + } - //set the default value for this class (for liveServer generated by generateData) - let properties = {} - properties.value = this.variable.value; - this.receiveData(properties) + createHTML(parentNode, rowNr = UINT8_MAX) { - //ask server for onUI - let command = {}; - command.onUI = [this.variable.pid + "." + this.variable.id]; - controller.requestJson(command); // this can be done here because of the async nature of requestJson, better is to do it after innerHTML+=... - //this triggers receiveData for this class which processes onUI result (options, comment etc) + // console.log("createHTML2", this.pidid(rowNr)) - //child variables - if (this.variable.n) { - code += `

` + parentNode.innerHTML += `
` + + let divNode = gId(`${this.pidid(rowNr)}_d`) + + if (parentNode.nodeName != "TD") //replace by parentVar... + divNode.innerHTML += `` + + this.createNode(divNode, rowNr) + + // if (!this.node) { + // this.node = gId(this.pidid(rowNr)) + // console.log("new node", this.node, this.variable) + // } + + //set the default value for this class + if (this.variable.value) { + console.log("init value", this.pidid(rowNr), this.variable.value) + if (rowNr == UINT8_MAX) + this.receiveValue(this.variable.value) + else + this.receiveValue(this.variable.value[rowNr], rowNr) + } + + if (this.variable.n && this.variable.type != "table") { // a table will create it's own columns in createNode2 + + divNode.innerHTML += `
` + for (let childVar of this.variable.n) { let childClass = varJsonToClass(childVar) - code += childClass.createHTML(); + childClass.createHTML(gId(this.pidid(rowNr) + "_n"), rowNr); } - code += `
` } - return code -} - //sets the value of the node to value of properties + //ask server for onUI, not if parent is table... + if (rowNr == UINT8_MAX) { + let command = {}; + command.onUI = [this.pidid()]; + controller.requestJson(command); // this can be done here because of the async nature of requestJson, better is to do it after innerHTML+=... + //this triggers receiveData for this class which processes onUI result (options, comment etc) + } + + + } + + receiveValue(value, rowNr = UINT8_MAX) { + // console.log("Variable receiveValue", childVar, values) + // console.log(childVar.pidid()) + + let node = gId(this.pidid(rowNr)) + + if (node) { + if (node.nodeName == "SPAN") { + if (node.innerHTML != null) + node.innerHTML = value; + } else { + if (node.value != null) + node.value = value; + } + } + } + + //add comment, if not exist, create comment + receiveComment(comment) { + // return; + if (comment) { + //if not tablecolumn + // let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + + // if (parentVar.type != "table") { + let commentNode = this.node.parentNode.querySelector("comment") + if (!commentNode) { + commentNode = cCE(this.node.parentNode, "comment") // disturbing canvas: this.node.parentNode.innerHTML += `${properties.comment}` + } + commentNode.innerText = comment + // } + // else + // to do add to th + } + } + receiveData(properties) { + if (this.node) { - //set label + let parentClass = varJsonToClass(controller.modules.findParentVar(this.variable.pid, this.variable.id)) + if (properties.label) { let labelNode = this.node.parentNode.querySelector("label") if (labelNode) @@ -294,305 +362,335 @@ class Variable { this.node.parentNode.innerHTML = `` + this.node.parentNode.innerHTML } - // if (Array.isArray(properties.value)) properties.value = properties.value[0] //temp hack to deal with table values + if (properties.value != null) { //!= 0 to include 0 - // if (properties.value != null && this.node.value != null) { - // this.node.value = properties.value; - // } + //parent is table (multirow) + if (Array.isArray(properties.value)) { + // console.log("receiveValue2 array", this.pidid(), properties.value) + // console.log("receiveData2", this.pidid(), properties.value) - //set value - if (properties.value != null) { // && this.variable.type != "select" - let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); - - // if (Array.isArray(properties.value)) - // console.log("table", properties.value) - if (!parentVar || parentVar.type != "table") { - if (this.variable.ro) { - if (this.node.innerHTML != null) - this.node.innerHTML = properties.value; - } else - { - if (this.node.value != null) - this.node.value = properties.value; - } - } else { - let nrOfRows = properties.value.length - // console.log("receiveData", this.variable, properties.value) - for (let rowNr = 0; rowNr < nrOfRows; rowNr++) { - let rowNode = gId(this.variable.pid + "." + this.variable.id + "#" + rowNr) - // console.log(rowNode) - if (rowNode) - rowNode.innerHTML = properties.value[rowNr] - else { - //add a row to the table - let tableNode = gId(parentVar.pid + "." + parentVar.id) - let tbodyNode = tableNode.querySelector("tbody"); - console.log("add table row", tableNode) - - // code += "" - - // for (let childVar of this.variable.n) { - // // let childClass = varJsonToClass(childVar) - // code += `` - // if (childVar.value) - // code += childVar.value[rowNr] - // // code += childClass.createHTML(); - // code += `` - // } - // code += "" - - } - + //make sure node exists ??? + parentClass.receiveValue(properties.value) //table: create extra rows if needed + + //receive value for each cell + for (let rowNr = 0; rowNr < properties.value.length; rowNr++) { + this.receiveValue(properties.value[rowNr], rowNr) } - //find the node with - // let rowVar = controller.modules.findVar(this.variable.pid, this.variable.id + "#0") + } + else { + // console.log("receive value for", this.pidid(), properties.value) + this.receiveValue(properties.value) } } if (properties.comment) { - let commentNode = this.node.parentNode.querySelector("comment") - if (!commentNode) { - commentNode = cE("comment") - this.node.parentNode.appendChild(commentNode) // disturbing canvas: this.node.parentNode.innerHTML += `${properties.comment}` - } - commentNode.innerText = properties.comment + console.log("receive comment for", this.pidid(), properties.comment) + if (parentClass.variable.type != "table") + this.receiveComment(properties.comment) + else { + //place comment under th columns ... + } } - //set file - if (properties.file) { - let url; - if (window.location.href.includes("127.0.0.1")) - url = "/misc/" //get the files from the misc folder in the repo - else - url = `http://${window.location.hostname}/file/` - - fetchAndExecute(url, properties.file, this.variable, function(variable, text) { - variable.file = JSON.parse(text); //assuming it is json, should we call this file? - variable.file.new = true; - console.log("receiveData file fetched", variable.id, variable.file); - }); - } - } - } + if (properties.file) + this.receiveFile(properties.file) + } //if node + } + + generateValue() { + return `${Math.round(Math.random()*255)}` + } + + //generateData: sends data to controller.receiveData which dispatches it to the right variable (used by Live Server) + //valueFun: function to generate data for one cell + //extra: e.g. in case of SelectVariable: the options of a drop down + //if table variable then an array of these values will be send (table column, receiveData will put them in cells) + generateData(extra = "") { + let value = "" + let sep = "" + if (this.generateValue()) { + let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + if (parentVar.type != "table") + value = `${sep} "value":${this.generateValue()}` + else + value = `${sep} "value":[${this.generateValue()}, ${this.generateValue()}, ${this.generateValue()}]` + sep = `,` + } - //used by Live Server - generateData(custom = `"value":${Math.random() * 256}`) { - //check if variable part of table - let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + if (extra) { + extra = `${sep}` + extra + sep = "," + } - // if (parentVar.id) - // console.log("generateData parentVar", this.variable.pid, this.variable.id, parentVar); + let comment = `${sep} "comment": "${this.variable.id + " " + Math.random().toString(36).slice(2)}"` - if (!parentVar || parentVar.type != "table") { - if (custom != "") custom += ", " + // console.log(`{"${this.pidid()}":{${value} ${extra} ${comment}}}`) - controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}"comment":"${this.variable.id + Math.random().toString(36).slice(2)}"}}`)); - } - else { - // if (custom != "") custom += ", " - // custom = `"value":[${Math.random() * 256}, ${Math.random() * 256}, ${Math.random() * 256}]` - // console.log(`{"${this.variable.pid + "." + this.variable.id}":{${custom}}}`) - controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}}}`)); - } + //check if variable part of table + controller.receiveData(JSON.parse(`{"${this.pidid()}":{${value} ${extra} ${comment}}}`)); + } } //class Variable class TextVariable extends Variable { - generateData() { - let parentVar = controller.modules.findParentVar(this.variable.pid, this.variable.id); + generateValue() { + return `"${Math.random().toString(36).slice(2)}"` + } + +} //class TextVariable + +class NumberVariable extends Variable { - if (!parentVar || parentVar.type != "table") { - super.generateData(`"value":"${Math.random().toString(36).slice(2)}"`) + createNode(parentNode, rowNr = UINT8_MAX) { + let node + if (this.variable.ro) { + node = `${this.variable.value}` } else { - super.generateData(`"value":["${Math.random().toString(36).slice(2)}", "${Math.random().toString(36).slice(2)}"]`) + node = `` } + // xNode.min = variable.min?variable.min:0; //if not specified then unsigned value (min=0) + // if (variable.max) xNode.max = variable.max; + parentNode.innerHTML += node + } + + generateValue() { + return `${Math.round(Math.random()*255)}` } } //class TextVariable class CheckboxVariable extends Variable { - createHTML() { - return super.createHTML(``); - } + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `` - receiveData(properties) { - super.receiveData(properties) + } - //set value - if (this.node && properties.value != null) { // - this.node.checked = properties.value - this.node.indeterminate = (properties.value == -1); //tbd: gen -1 + receiveValue(value, rowNr = UINT8_MAX) { + let node = gId(this.pidid(rowNr)) + + if (node && value != null) { + console.log("rv2", this.pidid(rowNr), value) + // console.log("CheckboxVariable receiveValue", this.pidid(rowNr), value) + node.checked = value + node.indeterminate = (value == -1); //tbd: gen -1 + if (this.variable.ro) + node.disabled = true } } - generateData() { - super.generateData(`"value":${Math.random() <.33?-1:Math.random() <.66?0:1}`) + generateValue() { + return `${Math.random() <.33?-1:Math.random() <.66?0:1}` // -1, 0 and 1 } } //class CheckboxVariable -class RangeVariable extends Variable { +class RangeVariable extends Variable { //slider - createHTML() { - return super.createHTML(`${this.variable.value}`) + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `${this.variable.value}` } - receiveData(properties) { - super.receiveData(properties) - let rvNode = gId(this.variable.pid + "." + this.variable.id + "_rv") - if (rvNode && properties.value != null) - rvNode.innerText = properties.value + receiveValue(value, rowNr = UINT8_MAX) { + super.receiveValue(value, rowNr) + + let rvNode = gId(this.pidid(rowNr) + "_rv") + // console.log(rvNode, value) + if (rvNode && value != null) + rvNode.innerText = value } - generateData() { - super.generateData(`"value":${Math.round(Math.random()*255)}`) //no value update + generateValue() { + return `${Math.round(Math.random()*255)}` } } //class RangeVariable class ButtonVariable extends Variable { - createHTML() { - return super.createHTML(``) + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `` } - generateData() { - super.generateData("") //no value update + generateValue() { + return null //no values } } //class ButtonVariable class SelectVariable extends Variable { - createHTML() { - return super.createHTML(``) + createNode(parentNode, rowNr = UINT8_MAX) { + if (this.variable.ro) + parentNode.innerHTML += `${this.variable.value}` + else + parentNode.innerHTML += `` + } + + receiveValue(value, rowNr = UINT8_MAX) { + // console.log("selectVar receiveValue", this.node, value, rowNr) + + let node = gId(this.pidid(rowNr)) + if (node) { + let options = node.getAttribute("options") + if (options) { + options = options.split(",") + if (this.variable.ro) { + if (options) { + let optionCounter = 0; + for (let option of options) { + // console.log(option, properties.value) + if (optionCounter == value) + node.innerText = option + optionCounter++; + } + } + } else { + if (!node.innerHTML) { + node.innerHTML = "" + let optionCounter = 0; + for (let option of options) + node.innerHTML+=`` + } + if (value) + node.value = value //select the right option + } + } + } } receiveData(properties) { - super.receiveData(properties) - - if (this.node) { - if (this.variable.ro) { - if (properties.options != null) { - this.node.setAttribute("options", properties.options) - // console.log(properties.options, this.node.getAttribute("options")); - } - if (this.node.getAttribute("options")) { - let optionCounter = 0; - for (let option of this.node.getAttribute("options").split(",")) { - // console.log(option, properties.value) - if (optionCounter == properties.value) - this.node.innerText = option - optionCounter++; - } - } - } else { - if (properties.options != null) { - this.node.innerHTML = "" - let optionCounter = 0; - for (let option of properties.options) - this.node.innerHTML+=`` + // if (this.variable.id == "effect") + // console.log(this.pidid(), properties) + + if (this.node && properties.options != null) { + if (Array.isArray(properties.value)) { + for (let rowNr = 0; rowNr < properties.value.length; rowNr++) { + let node = gId(this.pidid(rowNr)) + // console.log(node, this.pidid(rowNr)) + if (node) node.setAttribute("options", properties.options) //not always created yet. todo find out why } - if (this.variable.value) - this.node.value = this.variable.value //select the right option + } + else { + this.node.setAttribute("options", properties.options) + // console.log(properties.options, this.node.getAttribute("options")); } } + super.receiveData(properties) } - generateData() { - //add sample options if not yet existing - if (this.node) // && this.node.childNodes.length == 0 - super.generateData(`"options":["ein","zwei","drei"]`) + generateValue() { + return `${Math.random() <.33?0:Math.random() <.66?1:2}` //0, 1, or 2 + } - super.generateData(`"value":${Math.random() <.33?0:Math.random() <.66?1:2}`) + generateData() { + //add sample options + super.generateData(`"options":["eins","zwei","drei"]`) } } //class SelectVariable class ProgressVariable extends Variable { - createHTML() { - return super.createHTML(``) + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `` } } //class ProgressVariable class CanvasVariable extends Variable { - createHTML() { + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `` + } + + createHTML(parentNode, rowNr = UINT8_MAX) { // console.log(this.variable) if (this.variable.file) { this.variable.file.new = true; // console.log("canvas createHTML", this.variable.file, this.variable.file.new); } - return super.createHTML(``); - } - - receiveData(properties) { - super.receiveData(properties) + super.createHTML(parentNode, rowNr); } - generateData() { - //LEDs specific - if (this.node && this.variable.file == null) - super.generateData(`"file":"F_panel2x2-16x16.json"`) - //end LEDs specific - - super.generateData(`"value":"n/a"`) //no value needed for canvas, but only comment update ... + generateValue() { + return null;//`"n/a"` } } //class CanvasVariable class TableVariable extends Variable { - createHTML() { - let code = "" - code += `
` - code += `` + createNode(parentNode, rowNr = UINT8_MAX) { + + let tableNode = cCE(parentNode, "table"); + tableNode.id = this.pidid() + tableNode.className = this.variable.type + cCE(tableNode, "tbody") + // code += `` - code += `
` if (this.variable.n) { - code += "" + let trNode = cCE(cCE(tableNode, "thead"), "tr") + for (let childVar of this.variable.n) { - // let childClass = varJsonToClass(childVar) - code += `` - } - code += "" - } - if (this.variable.n) { - code += "" - //select max length of values - let nrOfRows = 0 - for (let childVar of this.variable.n) { - // console.log("createHTML values", childVar.pid, childVar.id, childVar.value) - if (childVar.value && childVar.value.length > nrOfRows) - nrOfRows = childVar.value.length; + let thNode = cCE(trNode, "th") + thNode.id = childVar.pid + "." + childVar.id + thNode.className = childVar.type + thNode.innerHTML = initCap(childVar.id) + // code += `` + + let childClass = varJsonToClass(childVar) + if (childVar.value) { + console.log("childclass init value", childClass.pidid(rowNr), childVar.value) + if (rowNr != UINT8_MAX) + this.receiveValue(this.variable.value[rowNr], rowNr) + else + childClass.receiveData({"value": childVar.value}) // will also create the table cells (which cause recursiveness...) + } + } + } - // console.log(this.variable.n[0]) - for (let rowNr = 0; rowNr < nrOfRows; rowNr++) { - code += "" + } + //receive value array so enough rows can be created before the real values come in + receiveValue(values, rowNr = UINT8_MAX) { //no rowNr used here + //create missing rows if there are + if (Array.isArray(values)) { + let tbodyNode = this.node.querySelector("tbody"); + let trNodes = tbodyNode.querySelectorAll("tr"); + + for (let rowNr = trNodes.length; rowNr < values.length; rowNr++) { + // console.log("receiveValue2 table", this.pidid(), values, rowNr, values.length) + let trNode = cCE(tbodyNode, "tr") for (let childVar of this.variable.n) { - let childClass = varJsonToClass(childVar) - code += `` + let tdNode = cCE(trNode, "td") + let childVariable = varJsonToClass(childVar) + // console.log("create cell", childVariable.pidid(rowNr)) + childVariable.createHTML(tdNode, rowNr, true) // this will call this method recursively... and also create missing rows + //create a cell and it's children, will again this function via table.rv2 + //new cell will receive values + //also new setValue will be called + } - code += "" } - code += "" - } + + //todo: delete rows not needed + + } //isArray + } + + generateData() { + //only table columns have data, so do nothing + } + +} //class TableVariable + // {/*
// //
` - code += childVar.id - // code += childClass.createHTML(); - code += `
` // width="${childVar.max?childVar.max*3:100}" + // code += initCap(childVar.id) + // code += `
` - code += childClass.createHTML() - if (childVar.value) - code += childVar.value[rowNr] - // code += childClass.createHTML(); - code += `
@@ -655,42 +753,28 @@ class TableVariable extends Variable { //
// List of files //
*/} - - code += `` - code += `` - return code - } - - receiveData(properties) { - console.log("receiveData", properties); - } - - generateData() { - // console.log("table.generateData") - // let custom = `"value":[1,2,3]` + ", " - // controller.receiveData(JSON.parse(`{"${this.variable.pid + "." + this.variable.id}":{${custom}"comment":"${Math.random().toString(36).slice(2)}"}}`)); - } - -} //class TableVariable - + class Coord3DVariable extends Variable { - createHTML() { - return super.createHTML(``); + createNode(parentNode, rowNr = UINT8_MAX) { + parentNode.innerHTML += `` } - receiveData(properties) { - super.receiveData(properties) - if (this.node && properties.value != null && this.node.childNodes) { - // console.log("Coord3D receiveData", properties, this.node.childNodes); - if (properties.value.x && this.node.childNodes[0]) this.node.childNodes[0].value = properties.value.x - if (properties.value.y && this.node.childNodes[1]) this.node.childNodes[1].value = properties.value.y - if (properties.value.z && this.node.childNodes[2]) this.node.childNodes[2].value = properties.value.z + receiveValue(value, rowNr = UINT8_MAX) { + // console.log(childVar.pidid()) + let node = gId(this.pidid(rowNr)) + // console.log("Variable receiveValue", this, node, value, rowNr) + + if (node && value != null && node.childNodes) { + // console.log("Coord3D receiveData", properties, node.childNodes); + if (value.x && node.childNodes[0]) node.childNodes[0].value = value.x + if (value.y && node.childNodes[1]) node.childNodes[1].value = value.y + if (value.z && node.childNodes[2]) node.childNodes[2].value = value.z } } - - generateData() { - super.generateData(`"value":{"x":${Math.random()*360}, "y":${Math.random()*360}, "z":${Math.random()*360}}`) + + generateValue() { + return `{"x":${Math.round(Math.random()*360)}, "y":${Math.round(Math.random()*360)}, "z":${Math.round(Math.random()*360)}}` } } //class Coord3DVariable diff --git a/data/newui/theme.css b/data/newui/theme.css new file mode 100644 index 00000000..1d67b7ed --- /dev/null +++ b/data/newui/theme.css @@ -0,0 +1,98 @@ +/* + @title StarBase + @file theme.css + @date 20241105 + @repo https://github.com/ewowi/StarBase, submit changes to this file as PRs to ewowi/StarBase + @Authors https://github.com/ewowi/StarBase/commits/main + @Copyright © 2024 Github StarBase Commit Authors + @license GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 + @license For non GPL-v3 usage, commercial licenses must be purchased. Contact moonmodules@icloud.com +*/ + +:root, + :root.starbase { + --bg-color: #121212; + --text-color: #cfd096; + --th-color: #c27e66; + --h-color:#c27e66; + --border-color: #cdad6a; + --select-color: #1a8aff; /*used for view buttons*/ + --label-color: #83c5eb; + --comment-color: #598a43; + --font-size: 14px; + } + :root.starlight { + --bg-color: linear-gradient(to bottom, #ffbe33 0%, #b60f62 100%); + --text-color: #030303; + --th-color: #b60f6281; + --h-color: #b60f62; + --border-color: #666; + --select-color: #FFFFFF; /*used for view buttons*/ + --label-color: #86eb83; + --font-size: 10px; + } + :root.wled { + --bg-color: #121212; + --text-color: #fff; + --th-color: rgb(255, 160, 0); + --h-color: rgb(255, 160, 0); + --border-color: rgb(255, 160, 0); + --select-color: rgb(255, 160, 0); + --font-size: 10px; + } + :root.grayeen { + --bg-color: linear-gradient(to bottom, #979294 0%, #474542 100%); + --text-color: #fbf4f4; + --th-color: #21482b; + --h-color: #21482b; + --border-color: #21482b; + --select-color: #21482b; /*used for view buttons*/ + --font-size: 10px; + --font-size-s: 8px; /*var(--font-size-s) not working for some reason */ + } + :root.dev { + --bg-color: #121212; + --text-color: #cfd096; + --th-color: #c27e66; + --h-color:#c27e66; + --border-color: #cdad6a; + --select-color: #1a8aff; /*used for view buttons*/ + --label-color: #83c5eb; + --comment-color: #598a43; + --font-size: 10px; + } + :root.light { + --bg-color: #fff; + --text-color: #123; + --h-color: #000000; + --th-color: #6d686a81; + --select-color: #6d686a81; + } + :root.dark { + --bg-color: #121212; + --text-color: #696d7d; + } + :root.blue { + --bg-color: #05396B; + --text-color: #E7F1FE; + --th-color: #b60f6281; + --h-color: #b60f62; + --select-color: #b60f6281; + } + :root.pink { + --bg-color: #ffcad4; + --text-color: #e75480; + --select-color: #e75480; /*used for view buttons*/ + } + :root.space { + --bg-color: #000; + --text-color: #f2bd16; + --bg-url: url(//space); + --font-family: 'Press Start 2P', cursive; + } + :root.nyan { + --bg-color: #013367; + --text-color: #fff; + --bg-url: url(//nyan); + --font-family: 'Comic Neue', cursive; + } diff --git a/package-lock.json b/package-lock.json index f102a3c9..feb340cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,13 +7,16 @@ "": { "name": "StarBase", "version": "0.0.0", - "license": "ISC", + "license": "GPL-3.0-only", "dependencies": { "clean-css": "^4.2.3", "html-minifier-terser": "^5.1.1", "inliner": "^1.13.1", "nodemon": "^2.0.20", "zlib": "^1.0.5" + }, + "engines": { + "node": ">=20.0.0" } }, "node_modules/abbrev": { diff --git a/package.json b/package.json index 65f2ed2d..0d4ad88b 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "type": "git", "url": "git+https://github.com/ewowi/StarBase.git" }, - "author": "", - "license": "ISC", + "author": "MoonModules", + "license": "GPL-3.0-only", "bugs": { "url": "https://github.com/ewowi/StarBase/issues" }, @@ -27,5 +27,8 @@ "inliner": "^1.13.1", "nodemon": "^2.0.20", "zlib": "^1.0.5" + }, + "engines": { + "node": ">=20.0.0" } } diff --git a/src/App/AppModDemo.h b/src/App/AppModDemo.h index a398d28b..40e730bd 100644 --- a/src/App/AppModDemo.h +++ b/src/App/AppModDemo.h @@ -64,6 +64,8 @@ class AppModDemo: public SysModule { ui->initSlider(parentVar, "frequency", &frequency); + ui->initCoord3D(parentVar, "coordinate", Coord3D()); + } void loop1s() { diff --git a/src/Sys/SysModInstances.h b/src/Sys/SysModInstances.h index 659f4bd1..487bd931 100644 --- a/src/Sys/SysModInstances.h +++ b/src/Sys/SysModInstances.h @@ -274,7 +274,7 @@ class SysModInstances:public SysModule { // insVar["fun"] = var["fun"]; //copy the onUI } - }); + }); //findVars if (sizeof(UDPWLEDMessage) != 44) { ppf("dev Size of UDP message is not 44: %d\n", sizeof(UDPWLEDMessage)); diff --git a/src/Sys/SysModModel.cpp b/src/Sys/SysModModel.cpp index f264585e..35204f34 100644 --- a/src/Sys/SysModModel.cpp +++ b/src/Sys/SysModModel.cpp @@ -576,9 +576,9 @@ void SysModModel::loop20ms() { } void SysModModel::loop1s() { - mdl->walkThroughModel([](Variable variable) { - variable.triggerEvent(onLoop1s); - return false; //don't stop + mdl->walkThroughModel([](JsonObject parentVar, JsonObject var) { + Variable(var).triggerEvent(onLoop1s); + return JsonObject(); //don't stop }); } @@ -707,32 +707,22 @@ Variable SysModModel::initVar(Variable parent, const char * id, const char * typ return variable; } -bool SysModModel::walkThroughModel(std::function fun, JsonObject parent) { - JsonArray root; - if (parent.isNull()) - root = model->as(); - else - root = parent["n"]; - - for (JsonObject var : root) { +JsonObject SysModModel::walkThroughModel(std::function fun, JsonObject parentVar) { + for (JsonObject var : parentVar.isNull()?model->as(): parentVar["n"]) { // ppf(" %s", var["id"].as()); - if (fun(Variable(var))) return true; + JsonObject foundVar = fun(parentVar, var); + if (!foundVar.isNull()) return foundVar; if (!var["n"].isNull()) { - if (walkThroughModel(fun, var)) return true; + foundVar = walkThroughModel(fun, var); + if (!foundVar.isNull()) return foundVar; } } - return false; //don't stop + return JsonObject(); //don't stop } -JsonObject SysModModel::findVar(const char * pid, const char * id, JsonObject parent) { - JsonArray root; - if (parent.isNull()) - root = model->as(); - else - root = parent["n"]; - - for (JsonObject var : root) { +JsonObject SysModModel::findVar(const char * pid, const char * id, JsonObject parentVar) { + for (JsonObject var : parentVar.isNull()?model->as():parentVar["n"]) { if (var["pid"] == pid && var["id"] == id) { //(!pid && var["pid"] == pid) && // Serial.printf("findVar found %s.%s!!\n", pid, id); return var; @@ -749,18 +739,13 @@ JsonObject SysModModel::findVar(const char * pid, const char * id, JsonObject pa return JsonObject(); } -void SysModModel::findVars(const char * property, bool value, FindFun fun, JsonArray parent) { - JsonArray root; +void SysModModel::findVars(const char * property, bool value, FindFun fun, JsonObject parentVar) { // print ->print("findVar %s %s\n", id, parent.isNull()?"root":"n"); - if (parent.isNull()) - root = model->as(); - else - root = parent; - for (JsonObject var : root) { + for (JsonObject var : parentVar.isNull()?model->as():parentVar["n"]) { if (var[property] == value) fun(Variable(var)); if (!var["n"].isNull()) - findVars(property, value, fun, var["n"]); + findVars(property, value, fun, var); } } \ No newline at end of file diff --git a/src/Sys/SysModModel.h b/src/Sys/SysModModel.h index 173d7491..d211ceb3 100644 --- a/src/Sys/SysModModel.h +++ b/src/Sys/SysModModel.h @@ -388,9 +388,9 @@ class SysModModel: public SysModule { } //returns the var defined by id (parent to recursively call findVar) - bool walkThroughModel(std::function fun, JsonObject parent = JsonObject()); - JsonObject findVar(const char * pid, const char * id, JsonObject parent = JsonObject()); - void findVars(const char * id, bool value, FindFun fun, JsonArray parent = JsonArray()); + JsonObject walkThroughModel(std::function fun, JsonObject parentVar = JsonObject()); + JsonObject findVar(const char * pid, const char * id, JsonObject parentVar = JsonObject()); + void findVars(const char * id, bool value, FindFun fun, JsonObject parentVar = JsonObject()); uint8_t linearToLogarithm(uint8_t value, uint8_t minp = 0, uint8_t maxp = UINT8_MAX) { if (value == 0) return 0; diff --git a/src/html_newui.h b/src/html_newui.h index d8b67ca8..4a249112 100644 --- a/src/html_newui.h +++ b/src/html_newui.h @@ -7,582 +7,618 @@ */ // Autogenerated from data/newui/index.htm, do not edit!! -const uint16_t PAGE_newui_L = 9214; +const uint16_t PAGE_newui_L = 9782; const uint8_t PAGE_newui[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xd5, 0x7d, 0xdb, 0x7a, 0xdb, 0x38, - 0x93, 0xe0, 0xbd, 0x9f, 0x02, 0x61, 0x67, 0x6c, 0xb1, 0x45, 0x49, 0xd4, 0xd1, 0xb6, 0x64, 0x2a, - 0xbf, 0xec, 0xd8, 0x89, 0x73, 0x74, 0xfb, 0x90, 0xe3, 0xe6, 0x6b, 0x43, 0x22, 0x24, 0x31, 0xa6, - 0x48, 0x36, 0x49, 0x59, 0x96, 0xd5, 0x7c, 0x83, 0xb9, 0x9a, 0x6f, 0x2f, 0xf6, 0x6e, 0xae, 0xe7, - 0x9b, 0x77, 0x98, 0x8b, 0x79, 0x94, 0x7d, 0x82, 0x79, 0x84, 0xad, 0x02, 0x40, 0x8a, 0x94, 0xe8, - 0x43, 0x7a, 0xb3, 0xfb, 0x4d, 0x3b, 0xb1, 0x44, 0x02, 0x05, 0xa0, 0x50, 0x55, 0xa8, 0x03, 0x4e, - 0x26, 0x7b, 0x4f, 0x9e, 0xbf, 0x3f, 0x38, 0xff, 0x7c, 0x72, 0x48, 0xc6, 0xe1, 0xc4, 0xee, 0x92, - 0xbd, 0xf8, 0x8b, 0x51, 0x13, 0xbe, 0x26, 0x2c, 0xa4, 0x64, 0x30, 0xa6, 0x7e, 0xc0, 0x42, 0x43, - 0x99, 0x86, 0xc3, 0xd2, 0x8e, 0x92, 0x24, 0xbb, 0x4e, 0xc8, 0x1c, 0x48, 0x9e, 0xb3, 0x40, 0x21, - 0x1b, 0x0e, 0x9d, 0x30, 0x43, 0xa1, 0x9e, 0x67, 0xb3, 0xd2, 0xc4, 0xed, 0x5b, 0xf0, 0x35, 0x63, - 0xfd, 0x12, 0x24, 0x94, 0x06, 0xd4, 0xa3, 0x7d, 0x9b, 0x25, 0x25, 0x37, 0x92, 0xa2, 0x33, 0xcb, - 0x0c, 0xc7, 0x86, 0xc9, 0xae, 0xad, 0x01, 0x80, 0xe3, 0x8b, 0x66, 0x39, 0x56, 0x68, 0x51, 0xbb, - 0x14, 0x0c, 0xa8, 0xcd, 0x8c, 0xaa, 0x42, 0x44, 0xc5, 0xd7, 0x16, 0x9b, 0x79, 0xae, 0x1f, 0x2e, - 0x2b, 0x91, 0x0d, 0x4e, 0xc3, 0xb1, 0xeb, 0x2b, 0x4b, 0x6c, 0xde, 0xba, 0xae, 0xf3, 0xd6, 0x35, - 0xa7, 0x36, 0x0b, 0x08, 0x75, 0x4c, 0x62, 0x85, 0x01, 0xcf, 0xf4, 0xad, 0xfe, 0x34, 0x74, 0xfd, - 0x00, 0x2b, 0xb0, 0x2d, 0xe7, 0x8a, 0xf8, 0xcc, 0x36, 0x14, 0x0b, 0xb2, 0x00, 0xf9, 0xb1, 0xcf, - 0x86, 0x86, 0x62, 0xd2, 0x90, 0xb6, 0xad, 0x09, 0x1d, 0xb1, 0x8a, 0xe7, 0x8c, 0x3a, 0x7d, 0x1a, - 0xb0, 0x56, 0x43, 0xb3, 0x3e, 0xec, 0xbf, 0x3f, 0x9d, 0xe9, 0xaf, 0x5f, 0x8c, 0xdc, 0x1e, 0xfc, - 0xbc, 0x3b, 0xbb, 0x18, 0x1f, 0x5e, 0x8c, 0xe0, 0x69, 0x1f, 0x5f, 0x7b, 0xbf, 0x1d, 0xf4, 0x3e, - 0xe3, 0xf7, 0x70, 0xa7, 0xb2, 0x3b, 0xe6, 0x29, 0x9f, 0xde, 0x9d, 0x9d, 0xea, 0xc7, 0x3d, 0x3f, - 0x68, 0x0c, 0x5a, 0xbf, 0xc1, 0xfb, 0xe1, 0xa9, 0xfd, 0xf1, 0xd0, 0x9e, 0x9c, 0x5f, 0xe8, 0xbd, - 0xd7, 0x58, 0xae, 0x07, 0x1f, 0x9f, 0x4d, 0x0f, 0x8a, 0xf6, 0xe2, 0x5a, 0x5e, 0xf0, 0x74, 0xf8, - 0x69, 0xe1, 0xfb, 0x5b, 0x99, 0x7e, 0xd8, 0xeb, 0xbd, 0xee, 0x1d, 0xa4, 0xe1, 0x0e, 0x5f, 0xf7, - 0x9e, 0x67, 0xde, 0x45, 0x29, 0xfd, 0xc3, 0xa7, 0x97, 0x73, 0x4c, 0xab, 0x1d, 0xda, 0x87, 0xbf, - 0x7d, 0xf8, 0xad, 0x71, 0xf8, 0xf9, 0xc3, 0xd9, 0xf9, 0x45, 0xd8, 0xbf, 0x38, 0xed, 0xed, 0xee, - 0xdc, 0xbc, 0x3e, 0xb7, 0x5f, 0xec, 0x5f, 0xdc, 0x1e, 0x7e, 0x79, 0x7d, 0x74, 0xf1, 0x72, 0xdf, - 0x1e, 0x7c, 0xb0, 0x8e, 0xf6, 0xcd, 0xb3, 0x03, 0xfb, 0x15, 0x3d, 0xbb, 0x7a, 0x55, 0xff, 0xc4, - 0xfc, 0x83, 0xf0, 0xfc, 0xfa, 0xd3, 0xe9, 0x87, 0xf9, 0xab, 0x46, 0x6f, 0xc7, 0x7d, 0x13, 0xde, - 0x54, 0x9d, 0x79, 0x2f, 0xec, 0x5f, 0xb9, 0x9f, 0xfc, 0x8f, 0x07, 0xb6, 0x6b, 0xea, 0x7f, 0x1c, - 0x1d, 0x7f, 0xa2, 0xe3, 0xd3, 0x17, 0xfd, 0x8f, 0x2f, 0xde, 0xb1, 0xb3, 0x77, 0x4d, 0xbd, 0xe9, - 0x37, 0x4f, 0x4e, 0x1a, 0xc7, 0xcf, 0xb7, 0x77, 0xab, 0xb7, 0xcd, 0xe6, 0xec, 0xd6, 0xdc, 0x1e, - 0xd7, 0x0f, 0xf6, 0x6b, 0x07, 0xf3, 0xca, 0xd5, 0xa0, 0x76, 0x7d, 0x7e, 0xa0, 0x3f, 0x7f, 0x59, - 0x3c, 0xdb, 0x7f, 0x6f, 0xf7, 0xeb, 0xe6, 0xab, 0xd6, 0x47, 0x7a, 0x36, 0xbc, 0xbd, 0x39, 0x71, - 0x9b, 0x76, 0xeb, 0xa0, 0x11, 0x7c, 0x9a, 0xb1, 0xd1, 0xed, 0xc9, 0xfb, 0xc3, 0xc1, 0xf3, 0x89, - 0x6e, 0xe9, 0x1f, 0xac, 0xf1, 0xcd, 0xed, 0xf4, 0xd3, 0xc5, 0xa0, 0x58, 0xed, 0x39, 0xb7, 0xb3, - 0xb7, 0xee, 0xfb, 0xca, 0xce, 0xc5, 0xce, 0xe8, 0xe4, 0x78, 0xf2, 0xba, 0x17, 0xdc, 0x36, 0xbe, - 0x87, 0xdb, 0x1f, 0xdf, 0xde, 0xf8, 0xbb, 0x17, 0x27, 0xef, 0x6e, 0xed, 0x51, 0xe5, 0xed, 0x47, - 0xb7, 0x7a, 0x6d, 0x3e, 0x3f, 0xf3, 0x7f, 0xeb, 0x4d, 0xfd, 0x57, 0xe3, 0x57, 0xfb, 0xfb, 0xdb, - 0xf3, 0xe1, 0xad, 0xee, 0xbf, 0x19, 0xd6, 0x1b, 0xe6, 0xa7, 0xe0, 0xfc, 0xe4, 0xf5, 0xf7, 0xcf, - 0x93, 0x2f, 0xdb, 0xaf, 0x7b, 0x8d, 0xed, 0xf1, 0xd9, 0x7c, 0xe7, 0x4d, 0xb1, 0x3f, 0xfa, 0xb4, - 0x5b, 0x3b, 0x3b, 0x7b, 0x71, 0xba, 0xed, 0xf5, 0x2f, 0x26, 0x56, 0xef, 0xd5, 0x55, 0xf0, 0xe1, - 0xd5, 0xe0, 0xed, 0xfb, 0x17, 0xcf, 0xaf, 0xc6, 0xdf, 0x4f, 0x9c, 0xab, 0x69, 0xaf, 0x39, 0x7d, - 0x77, 0xf4, 0x7c, 0x58, 0xac, 0x1d, 0x17, 0x6f, 0xbe, 0xf8, 0xe7, 0xb3, 0x3f, 0xfe, 0x38, 0x1d, - 0xd5, 0x5f, 0x15, 0x0f, 0xeb, 0x87, 0xc3, 0x83, 0x93, 0xb7, 0xc7, 0x33, 0xcf, 0x3a, 0xff, 0x52, - 0x3c, 0x9f, 0x7d, 0x1c, 0x7f, 0x1a, 0xf4, 0xc7, 0x13, 0x3a, 0xb9, 0xfd, 0xfc, 0xba, 0x3f, 0xfb, - 0xf2, 0xfc, 0x0f, 0xf3, 0x45, 0xab, 0xb6, 0xdd, 0xeb, 0xed, 0x7c, 0xb8, 0x39, 0xec, 0x9d, 0x5d, - 0x9f, 0x8f, 0x2a, 0xe7, 0xba, 0xff, 0x7a, 0xf0, 0xfa, 0xcb, 0x59, 0x7f, 0x4c, 0xc3, 0x1d, 0xef, - 0x9d, 0x33, 0xec, 0x9d, 0x54, 0x2b, 0xd5, 0x59, 0xff, 0x4b, 0x71, 0x5e, 0x6c, 0xed, 0xb7, 0xb6, - 0xbf, 0x3b, 0xb7, 0xdb, 0xe3, 0x03, 0xdd, 0xb1, 0x8f, 0x1b, 0xbb, 0xd7, 0x0e, 0x90, 0xeb, 0x73, - 0xf8, 0xfe, 0xec, 0x4b, 0xf1, 0xb4, 0xe5, 0xeb, 0x93, 0xb9, 0xde, 0xf2, 0x0e, 0x47, 0x6f, 0xfc, - 0xca, 0xf4, 0xb4, 0x1f, 0xee, 0x7a, 0x07, 0x3b, 0xa3, 0x4f, 0xfb, 0x47, 0x87, 0x73, 0xdd, 0xd3, - 0x9f, 0xbf, 0xff, 0x52, 0x0d, 0x4e, 0x3f, 0x5e, 0xcd, 0x7b, 0xfb, 0x56, 0x70, 0xf6, 0xa2, 0xde, - 0xdb, 0x79, 0xb5, 0xfd, 0xea, 0xc8, 0xbb, 0x1d, 0xbc, 0xf1, 0x3f, 0xde, 0xbc, 0xfc, 0x4e, 0x75, - 0x3a, 0x87, 0x61, 0x72, 0xe6, 0xbf, 0x74, 0xed, 0xd1, 0x73, 0x67, 0x76, 0xbe, 0x5d, 0xfc, 0x38, - 0x9c, 0x4f, 0xdf, 0x7e, 0xfc, 0xf2, 0xa5, 0x72, 0x33, 0xd8, 0x6d, 0xd2, 0x51, 0xe3, 0xed, 0xc1, - 0xf9, 0x97, 0x8b, 0xe2, 0x69, 0xe5, 0x7d, 0xfd, 0xc0, 0x1a, 0x79, 0xbf, 0xdd, 0x7e, 0x3c, 0x1e, - 0xfb, 0xb5, 0xa3, 0xd3, 0xd7, 0x6f, 0x5e, 0x5a, 0xaf, 0xae, 0xdf, 0xbd, 0xb6, 0xdf, 0xbc, 0xda, - 0x3f, 0x9d, 0xb0, 0x46, 0x6b, 0xfc, 0x65, 0xe7, 0x73, 0xbd, 0xbe, 0xc3, 0xac, 0xef, 0x57, 0xd5, - 0x8f, 0xcd, 0xab, 0xdb, 0x97, 0x5e, 0x7f, 0x27, 0xbc, 0x7a, 0xd1, 0x9b, 0x1e, 0x7c, 0x98, 0x7d, - 0x3a, 0x61, 0x0d, 0x6f, 0x74, 0x70, 0x36, 0xb8, 0x39, 0xeb, 0xd9, 0x33, 0x76, 0x74, 0xd2, 0x2a, - 0x1e, 0x0c, 0xfd, 0x0f, 0x95, 0xf7, 0xcd, 0x8f, 0x2f, 0x5f, 0xd7, 0x1b, 0xb7, 0x95, 0xa6, 0x4e, - 0x8f, 0x07, 0xe3, 0xdf, 0x5e, 0xee, 0x37, 0x85, 0x68, 0xbe, 0x3a, 0xbd, 0x68, 0x1e, 0xfa, 0x57, - 0xaf, 0x46, 0xa3, 0x91, 0x61, 0x28, 0xdd, 0x0d, 0xb2, 0x17, 0x0c, 0x7c, 0xcb, 0x0b, 0xbb, 0x95, - 0x0a, 0xf9, 0x87, 0x0d, 0x63, 0xdd, 0x09, 0x18, 0x21, 0xe4, 0xc5, 0xbb, 0x0b, 0xf2, 0xe2, 0xf0, - 0xdd, 0xe1, 0x69, 0xef, 0x0d, 0x39, 0xb9, 0xd8, 0x7f, 0x73, 0x7c, 0x40, 0xe0, 0xf7, 0xf0, 0xdd, - 0xd9, 0x21, 0xf9, 0xc0, 0xfc, 0xc0, 0x72, 0x1d, 0x52, 0xd7, 0x48, 0x6d, 0x97, 0xbc, 0x9a, 0x3a, - 0x8c, 0xd4, 0x74, 0x7d, 0x7b, 0x23, 0x5b, 0xc1, 0x91, 0xeb, 0x13, 0x07, 0xa0, 0x5e, 0x9c, 0xbc, - 0x29, 0x5d, 0xd7, 0xc9, 0x34, 0x80, 0xa1, 0xab, 0xc1, 0x68, 0x9f, 0x4c, 0x98, 0x3f, 0x00, 0x25, - 0x42, 0x24, 0x68, 0x40, 0x26, 0xd3, 0x20, 0x24, 0x7d, 0x46, 0xbc, 0xa9, 0x0f, 0xea, 0x2c, 0x60, - 0x66, 0x99, 0x1c, 0x80, 0x52, 0xa0, 0x83, 0x90, 0x4c, 0x40, 0x61, 0x4c, 0x84, 0xc2, 0xf8, 0x87, - 0x35, 0xb0, 0xdd, 0xa9, 0x59, 0x86, 0x1a, 0x36, 0x06, 0x36, 0x0d, 0x02, 0x0e, 0xe4, 0xbb, 0xb6, - 0xcd, 0xfc, 0xc5, 0x2c, 0x30, 0x9c, 0xa9, 0x6d, 0x77, 0x82, 0x79, 0x70, 0xec, 0x0c, 0x5d, 0x63, - 0x11, 0x75, 0x64, 0x31, 0x91, 0x1e, 0x8e, 0x19, 0x28, 0x24, 0xfe, 0x38, 0xa1, 0x96, 0xf3, 0x8e, - 0x5e, 0x8b, 0x17, 0xd7, 0x79, 0xe3, 0x52, 0xb3, 0xa0, 0x2e, 0x4c, 0x77, 0x30, 0x9d, 0x80, 0x8e, - 0x2a, 0x87, 0x56, 0x08, 0xaa, 0x0d, 0x34, 0xe3, 0x3b, 0x50, 0x61, 0x05, 0xb5, 0xa8, 0xfc, 0xd7, - 0xbf, 0xfe, 0xcb, 0xbf, 0x93, 0xfe, 0x9c, 0xa4, 0x75, 0xd7, 0x7f, 0xfd, 0xeb, 0x3f, 0xff, 0x4f, - 0x45, 0x9b, 0x59, 0x8e, 0xe9, 0xce, 0xca, 0xb6, 0x3b, 0xa0, 0x21, 0xd0, 0xa3, 0x8c, 0x8a, 0xaa, - 0x6c, 0x39, 0x03, 0x7b, 0x6a, 0xb2, 0xa0, 0xa0, 0x54, 0x6b, 0xdb, 0x65, 0x1d, 0xfe, 0x55, 0x15, - 0xf5, 0x59, 0x38, 0xb6, 0x82, 0xf2, 0x90, 0x85, 0x83, 0x31, 0x54, 0xc1, 0x6c, 0xa0, 0xcd, 0x1b, - 0xeb, 0x9a, 0x9d, 0x31, 0xff, 0x9a, 0xf9, 0x05, 0xb5, 0xcd, 0xb3, 0x27, 0xf4, 0x8a, 0x7d, 0x3c, - 0x2b, 0xa8, 0x9a, 0x78, 0x8b, 0xd1, 0x67, 0x33, 0x22, 0x9b, 0xd5, 0x46, 0xc7, 0x66, 0x41, 0xe9, - 0xbb, 0xe6, 0x5c, 0x51, 0xa1, 0x1d, 0x87, 0xf9, 0x2f, 0xcf, 0xdf, 0xbe, 0x29, 0x1a, 0xca, 0xde, - 0xb8, 0xda, 0x3d, 0x0b, 0x29, 0xd4, 0x39, 0x1a, 0x87, 0x04, 0x11, 0xde, 0xab, 0x40, 0x92, 0x22, - 0x6a, 0x92, 0x7d, 0x87, 0x7a, 0xce, 0xf1, 0x29, 0x95, 0x58, 0x1e, 0xf8, 0x8c, 0x86, 0x0c, 0x6b, - 0x89, 0x9b, 0x15, 0xe9, 0x23, 0x16, 0x72, 0xd8, 0x04, 0x99, 0x98, 0x66, 0x88, 0x8c, 0x78, 0x2e, - 0xa4, 0xb1, 0xc4, 0x6f, 0x66, 0x67, 0x81, 0xb3, 0x95, 0x4f, 0x03, 0xe6, 0x1f, 0x4d, 0x9d, 0x33, - 0x16, 0x4e, 0xbd, 0x82, 0x1a, 0xd1, 0x60, 0xee, 0x0c, 0xc8, 0x9d, 0x04, 0x59, 0xd8, 0x2c, 0x24, - 0xc0, 0x85, 0x19, 0xb5, 0xc2, 0x02, 0xff, 0x14, 0xb0, 0x05, 0xa5, 0x32, 0xb1, 0x82, 0x41, 0x85, - 0x37, 0x57, 0xfe, 0x1e, 0x80, 0x7d, 0x50, 0x55, 0xfe, 0x5d, 0x50, 0x3b, 0xac, 0x1c, 0x80, 0x0d, - 0x2a, 0x14, 0x86, 0x53, 0x67, 0x80, 0xfc, 0x28, 0x40, 0x57, 0xd5, 0x85, 0x0f, 0x2d, 0xfa, 0x0e, - 0x60, 0x1d, 0x8e, 0xcb, 0xb4, 0x1f, 0x14, 0x58, 0xd9, 0x55, 0x4b, 0xc9, 0x5b, 0x08, 0x6f, 0x91, - 0xaa, 0x76, 0x86, 0xae, 0x5f, 0xc0, 0x36, 0x43, 0xe2, 0x0e, 0x09, 0x53, 0x33, 0x7d, 0xa3, 0xa6, - 0x29, 0x18, 0x50, 0x08, 0xd5, 0x0e, 0x07, 0x32, 0x16, 0x52, 0xce, 0xda, 0x8b, 0x28, 0xea, 0x84, - 0x65, 0xf9, 0x56, 0xee, 0xbb, 0xd4, 0x37, 0x0d, 0x85, 0x05, 0x5e, 0xbd, 0x06, 0xc4, 0x4f, 0xd2, - 0x1d, 0xff, 0xfd, 0xf0, 0xc4, 0x72, 0x02, 0xa3, 0xa1, 0xa7, 0x52, 0x3d, 0xcb, 0x39, 0x9f, 0x7b, - 0xc0, 0xe2, 0xaf, 0xdf, 0x92, 0xf6, 0x99, 0xa1, 0x77, 0xd8, 0xde, 0x7a, 0xc9, 0x0e, 0x2b, 0x16, - 0xd5, 0xf5, 0xa2, 0x5f, 0xd9, 0x37, 0x83, 0xf7, 0xc5, 0x77, 0xa7, 0x8e, 0x59, 0xa8, 0xff, 0x2a, - 0x5e, 0xc0, 0xb4, 0xba, 0x93, 0x02, 0x74, 0x8b, 0xf7, 0xc3, 0x67, 0x03, 0x06, 0xb4, 0x7d, 0x0e, - 0x06, 0x14, 0x7a, 0x10, 0x4b, 0x2d, 0x38, 0x0d, 0xc7, 0x60, 0x95, 0xfd, 0x6b, 0x6a, 0xa7, 0x48, - 0xa6, 0x2e, 0x06, 0xc9, 0xa0, 0x4a, 0x08, 0x30, 0x62, 0x20, 0x6a, 0xc0, 0x4a, 0x5e, 0x03, 0x90, - 0x4b, 0xab, 0xb2, 0xfa, 0x83, 0xf5, 0x88, 0xde, 0x7c, 0xd5, 0xb5, 0xaa, 0x56, 0xd3, 0xea, 0x5a, - 0xe3, 0x5b, 0xc7, 0x1a, 0x16, 0xd8, 0x57, 0x3d, 0x83, 0x70, 0x16, 0x5d, 0x4d, 0x37, 0x0c, 0x84, - 0x10, 0x85, 0x43, 0x83, 0x8b, 0x3b, 0xf6, 0x5e, 0x10, 0x56, 0x51, 0xb1, 0x0a, 0x60, 0x69, 0xc2, - 0x2c, 0x20, 0x56, 0xb8, 0x97, 0x42, 0x78, 0x8d, 0x6a, 0x21, 0x50, 0x8d, 0x7d, 0x0d, 0x8b, 0xcd, - 0x4c, 0xab, 0xb5, 0x66, 0x6b, 0x95, 0x50, 0x39, 0xbd, 0xf6, 0x7c, 0x86, 0x7e, 0xcd, 0x3e, 0x36, - 0x5d, 0x08, 0x35, 0xa6, 0x46, 0x11, 0xb3, 0x41, 0xb3, 0x49, 0x49, 0x2e, 0x30, 0x4e, 0x09, 0x5d, - 0x57, 0xa3, 0x78, 0xe0, 0x2e, 0x10, 0x3d, 0xa4, 0xf8, 0x2c, 0x50, 0x85, 0xd8, 0x75, 0x04, 0x15, - 0x0a, 0xca, 0x38, 0x0c, 0xbd, 0xa0, 0xad, 0x18, 0xc6, 0xaa, 0xce, 0xf0, 0x7c, 0x37, 0x74, 0x07, - 0xae, 0xfd, 0x4c, 0x99, 0x05, 0x81, 0xd2, 0x86, 0x4f, 0x05, 0x74, 0x4e, 0xbb, 0x52, 0x51, 0x8a, - 0x6b, 0xea, 0xc5, 0x0d, 0x42, 0xf4, 0xab, 0x8a, 0x4a, 0x05, 0xa0, 0x10, 0xe5, 0xc0, 0xb5, 0x19, - 0xe4, 0x8f, 0x0a, 0x8a, 0x40, 0x81, 0x4c, 0x7d, 0x5b, 0x01, 0x4c, 0x35, 0x89, 0x05, 0x1f, 0xaf, - 0x1f, 0x59, 0xff, 0xcc, 0x1d, 0x5c, 0xb1, 0xb0, 0xb0, 0xcc, 0x28, 0xf7, 0x2d, 0x87, 0xfa, 0x73, - 0x94, 0x21, 0xf0, 0xd2, 0x7c, 0x9f, 0xce, 0xfb, 0xd3, 0xe1, 0x90, 0xf9, 0x4a, 0x02, 0x00, 0x6a, - 0x97, 0x05, 0xa8, 0xb2, 0x0d, 0x66, 0x74, 0xb1, 0x63, 0xac, 0x8c, 0x1e, 0x18, 0x01, 0xaa, 0x86, - 0xd4, 0x19, 0x30, 0x18, 0x26, 0x3d, 0x2c, 0xb7, 0xcf, 0xcb, 0xc5, 0x1c, 0xc3, 0xf6, 0x2e, 0x2c, - 0x27, 0xdc, 0xe1, 0x79, 0xb2, 0x0c, 0x67, 0x1b, 0xb0, 0x36, 0x4c, 0x58, 0xcb, 0x72, 0x58, 0xcb, - 0x36, 0x37, 0x33, 0xa3, 0x2e, 0x43, 0x7e, 0x1c, 0xc9, 0x59, 0xea, 0xcb, 0xf7, 0xb8, 0x5d, 0xae, - 0xe3, 0xfd, 0xf9, 0x22, 0x34, 0x5e, 0x9d, 0xbd, 0x7f, 0x57, 0xf6, 0xd0, 0x29, 0x8e, 0x9b, 0x8f, - 0x80, 0x7e, 0xa0, 0x3a, 0x5c, 0x75, 0x21, 0x00, 0xb5, 0x98, 0x72, 0xcc, 0xf7, 0x41, 0x92, 0x62, - 0xda, 0xa1, 0x16, 0x21, 0x3c, 0x49, 0xd1, 0x5c, 0x2d, 0x2e, 0xcb, 0x25, 0x0e, 0x3f, 0xca, 0x21, - 0x10, 0x6b, 0x73, 0xf3, 0x2b, 0x7a, 0xd1, 0x80, 0xa3, 0xa2, 0x29, 0x88, 0x8a, 0x78, 0x02, 0xb9, - 0xc3, 0x87, 0x6f, 0x4b, 0xe5, 0x2f, 0xc0, 0xd5, 0xb8, 0xbb, 0x4f, 0xaa, 0xc9, 0x08, 0x77, 0x51, - 0xc3, 0xe4, 0xe8, 0x4e, 0xb7, 0x6c, 0x99, 0x40, 0x23, 0xf8, 0xdc, 0xdc, 0x2c, 0x40, 0x09, 0x1d, - 0x48, 0xf2, 0x2c, 0xc3, 0x63, 0xf4, 0xfe, 0xb1, 0xb0, 0x28, 0x47, 0xa8, 0x0d, 0xfa, 0xd5, 0x9c, - 0x93, 0x78, 0x74, 0x02, 0x22, 0x61, 0x6c, 0x49, 0x72, 0x34, 0x97, 0x20, 0x1f, 0xe7, 0x4b, 0xd9, - 0x0a, 0x04, 0x7f, 0x42, 0x35, 0xdb, 0x02, 0xf8, 0xfa, 0x84, 0x4b, 0x03, 0x18, 0x6e, 0x40, 0xfb, - 0xc6, 0x63, 0x83, 0x4c, 0xbd, 0x59, 0x4d, 0x12, 0x45, 0x29, 0x69, 0x01, 0xdb, 0x1c, 0x08, 0x59, - 0xc9, 0xd4, 0x08, 0x74, 0xe5, 0x39, 0xdc, 0xdb, 0x87, 0x31, 0xe1, 0xcf, 0xb9, 0x7c, 0x82, 0xd2, - 0x38, 0xb7, 0x26, 0xcc, 0x9d, 0x86, 0x05, 0x41, 0x7d, 0xad, 0xda, 0x84, 0x91, 0xb4, 0x94, 0x5b, - 0x60, 0x53, 0xba, 0x76, 0xd7, 0x63, 0x4e, 0x6e, 0xe5, 0x98, 0x81, 0x35, 0xa6, 0x81, 0x39, 0x0f, - 0x73, 0xa1, 0x25, 0x77, 0x71, 0x28, 0xfb, 0xec, 0x8f, 0x29, 0x0b, 0xc2, 0x57, 0x68, 0x3a, 0x18, - 0x1f, 0xb9, 0x8f, 0xb7, 0xe6, 0xc0, 0x19, 0x14, 0x3d, 0x28, 0xf3, 0x24, 0x67, 0xb8, 0x4b, 0x11, - 0x0c, 0x20, 0xa8, 0x71, 0x46, 0xd6, 0x10, 0x46, 0x81, 0xd4, 0xc3, 0x80, 0x5c, 0xc0, 0x40, 0xfd, - 0x84, 0xbc, 0xf9, 0x25, 0x25, 0x45, 0xf3, 0x56, 0xf0, 0xbe, 0xff, 0x1d, 0xe8, 0x0d, 0xaf, 0x6a, - 0xc6, 0x1a, 0x89, 0xe4, 0xf2, 0x15, 0x9b, 0x07, 0x85, 0x58, 0xa2, 0x5c, 0xd0, 0x93, 0xe1, 0x37, - 0xcd, 0x01, 0x79, 0x09, 0x3c, 0x1b, 0x6c, 0xa4, 0x52, 0x56, 0x80, 0xaa, 0x46, 0x86, 0xfb, 0x43, - 0xe8, 0xd0, 0x07, 0xea, 0x17, 0x1c, 0x18, 0x77, 0x9a, 0xf3, 0xb5, 0xfa, 0x8d, 0x0f, 0xc4, 0x40, - 0x5d, 0x5c, 0x53, 0x1f, 0xfb, 0x7d, 0xee, 0x1e, 0xa0, 0x1b, 0x05, 0x29, 0x19, 0xc6, 0xba, 0x42, - 0x54, 0x14, 0xa9, 0x4c, 0x41, 0x67, 0x85, 0x20, 0x91, 0xbc, 0xe6, 0xd8, 0xbb, 0x02, 0x90, 0x28, - 0x92, 0xf4, 0x5a, 0x6a, 0x4e, 0x3e, 0xfa, 0x97, 0x3e, 0x19, 0x57, 0x50, 0x21, 0xb9, 0x38, 0x7e, - 0x77, 0xbe, 0xf3, 0xfb, 0xdb, 0xde, 0x27, 0xa3, 0xd6, 0x6c, 0x6a, 0xf8, 0x56, 0x6d, 0xf1, 0xd7, - 0x56, 0xb3, 0x59, 0x6f, 0x76, 0x62, 0x8b, 0x41, 0x50, 0x23, 0xb0, 0xc4, 0x5c, 0x27, 0xee, 0x18, - 0x78, 0x22, 0x87, 0x36, 0xc3, 0xc7, 0xfd, 0x39, 0x87, 0x88, 0x92, 0x12, 0x83, 0xc3, 0xbc, 0x02, - 0xc2, 0xeb, 0x90, 0x65, 0x32, 0xf0, 0x56, 0xf0, 0xc6, 0x9d, 0x41, 0x3c, 0x45, 0x51, 0x35, 0x24, - 0x05, 0x59, 0x39, 0x74, 0x97, 0xe9, 0x2a, 0x58, 0xa0, 0x54, 0x09, 0x08, 0x77, 0x0f, 0xa8, 0x27, - 0x39, 0xa4, 0x08, 0x96, 0x2a, 0x4f, 0x0c, 0x1c, 0xdb, 0xdc, 0x4f, 0x10, 0x75, 0x28, 0x8a, 0x64, - 0x3c, 0x3c, 0x24, 0xc3, 0x1c, 0x6c, 0x93, 0xbb, 0x07, 0xa2, 0xc7, 0x9c, 0x51, 0x38, 0xee, 0xb8, - 0x60, 0x88, 0x40, 0x05, 0xba, 0xcf, 0xc2, 0xa2, 0x01, 0x6e, 0x17, 0x04, 0xed, 0xbd, 0x10, 0x28, - 0x0d, 0x6d, 0x5f, 0x78, 0x5e, 0xdc, 0x76, 0xfb, 0x49, 0x06, 0xc5, 0x25, 0x98, 0xba, 0xb9, 0x99, - 0x9f, 0x53, 0xaa, 0xaa, 0x2a, 0x56, 0xa9, 0x10, 0xa5, 0x98, 0x82, 0x6f, 0x2b, 0x25, 0x60, 0x5b, - 0x2a, 0xe1, 0xcf, 0x3f, 0x95, 0xdf, 0xb3, 0x29, 0xb2, 0x54, 0x3b, 0x8b, 0x4f, 0x47, 0x12, 0x25, - 0x4c, 0x53, 0x2d, 0x91, 0x4b, 0x49, 0xb2, 0x27, 0x59, 0x25, 0xc2, 0x00, 0xbb, 0x02, 0x0e, 0xd8, - 0x27, 0xd0, 0x00, 0x3c, 0x2a, 0x71, 0x51, 0x94, 0x1c, 0x49, 0x28, 0x68, 0xdf, 0xe5, 0xb5, 0xa4, - 0xd2, 0xd4, 0x14, 0x6b, 0xb8, 0x73, 0xd7, 0x73, 0xcc, 0xc3, 0x1b, 0x36, 0x98, 0x86, 0x0c, 0xf5, - 0x3d, 0xe8, 0x60, 0x47, 0x13, 0x9a, 0x00, 0x2c, 0x3e, 0x77, 0xfe, 0x58, 0x31, 0xd4, 0x16, 0x13, - 0x16, 0x8e, 0x5d, 0xb3, 0xad, 0x80, 0x60, 0x28, 0x91, 0x8a, 0xfe, 0x2a, 0x0c, 0x60, 0xa3, 0x0b, - 0x6e, 0xdd, 0xd5, 0x33, 0xe0, 0x25, 0xbb, 0x09, 0x81, 0x90, 0x85, 0x60, 0x73, 0x13, 0xc6, 0xec, - 0x91, 0x05, 0x7a, 0x52, 0x29, 0x86, 0x45, 0x85, 0x2b, 0xb4, 0x21, 0x5a, 0x7f, 0x18, 0x27, 0x0a, - 0x3a, 0x8d, 0x71, 0xc1, 0x85, 0x53, 0x70, 0x51, 0x23, 0xa8, 0x65, 0x61, 0x26, 0x52, 0xee, 0xa3, - 0xba, 0xe0, 0xd5, 0xb8, 0x9a, 0x72, 0x88, 0x8a, 0x03, 0x34, 0x6d, 0x18, 0x82, 0x00, 0x60, 0x8d, - 0xaa, 0x96, 0xd6, 0x2d, 0x58, 0x5c, 0xc5, 0xf1, 0x46, 0x6d, 0x7b, 0x5e, 0x00, 0x21, 0xea, 0x2e, - 0x22, 0x35, 0xda, 0xd8, 0xab, 0xc8, 0xc8, 0x2a, 0x09, 0xb1, 0x36, 0xfe, 0x76, 0x31, 0x16, 0x0f, - 0x03, 0x16, 0x69, 0x57, 0x7e, 0x71, 0x47, 0x14, 0x72, 0xb9, 0xe7, 0x75, 0xf7, 0x6c, 0xda, 0x67, - 0x76, 0x97, 0x17, 0xda, 0xab, 0x88, 0x17, 0xf2, 0x3f, 0x1c, 0xc0, 0x14, 0x48, 0xc0, 0x6c, 0x10, - 0x00, 0x39, 0x63, 0xc4, 0xc3, 0x8c, 0x92, 0x48, 0x52, 0x08, 0x58, 0xbe, 0x95, 0x14, 0x30, 0x28, - 0x63, 0xea, 0x80, 0xf7, 0xa1, 0xa4, 0x3c, 0x33, 0x11, 0x9b, 0x04, 0x71, 0x6c, 0xc2, 0x55, 0x12, - 0xb8, 0x9d, 0x53, 0xa6, 0x2a, 0x5d, 0xd1, 0x08, 0x34, 0xe3, 0x7a, 0x5c, 0xa2, 0x78, 0xba, 0x01, - 0x43, 0x96, 0xfa, 0x38, 0x55, 0xa4, 0xf0, 0xf8, 0x68, 0x1f, 0x9e, 0xf6, 0x2a, 0x02, 0xe2, 0xbe, - 0x12, 0x36, 0xc6, 0x51, 0xca, 0x32, 0xa4, 0x7a, 0xa8, 0xcc, 0xcc, 0x06, 0x2b, 0xd9, 0xfd, 0xf8, - 0xe6, 0xf0, 0xf9, 0x43, 0x90, 0x23, 0x18, 0x31, 0x0c, 0x4c, 0x56, 0xf7, 0x85, 0x78, 0x78, 0x08, - 0x1e, 0x2c, 0xb2, 0xd2, 0x7d, 0xce, 0xae, 0x1f, 0x82, 0x93, 0x18, 0x3f, 0x0a, 0x5b, 0x93, 0xfa, - 0x57, 0x58, 0x29, 0x78, 0xc0, 0xd8, 0xc3, 0x87, 0xc0, 0xfb, 0xf0, 0xa9, 0x74, 0xf7, 0xe1, 0xf3, - 0x21, 0x48, 0x88, 0x4a, 0xa0, 0x62, 0xf0, 0xea, 0xae, 0x1e, 0x24, 0xb2, 0x47, 0x07, 0xc8, 0x13, - 0xfc, 0x7a, 0x08, 0xd6, 0x99, 0x53, 0xa0, 0xd7, 0x3b, 0xf8, 0x5c, 0x87, 0xac, 0x08, 0x79, 0xe9, - 0xee, 0x41, 0x85, 0x4e, 0x97, 0xfc, 0x89, 0x29, 0xf8, 0xb4, 0x67, 0x39, 0xde, 0x14, 0x34, 0x32, - 0xf7, 0x6f, 0xfb, 0xd3, 0x30, 0xc4, 0x89, 0x44, 0x59, 0x1f, 0x37, 0x7a, 0xd6, 0xe0, 0xe2, 0x58, - 0xc8, 0x5d, 0x3f, 0xf5, 0x8e, 0x6e, 0x8c, 0x35, 0xb8, 0xc2, 0xa9, 0x4f, 0x6e, 0xdb, 0xd0, 0xbb, - 0x28, 0x6c, 0x3d, 0x5d, 0xe4, 0xba, 0x06, 0x3e, 0xf3, 0x6c, 0x40, 0x1f, 0x42, 0x52, 0xb0, 0x7b, - 0x53, 0x4b, 0x41, 0xb5, 0x12, 0x6d, 0x11, 0x6d, 0xeb, 0x77, 0x40, 0x6a, 0xb8, 0xa5, 0x76, 0x94, - 0xee, 0x5e, 0x85, 0xe3, 0x91, 0xc2, 0xd7, 0xeb, 0x5e, 0x46, 0x89, 0x00, 0x33, 0x35, 0xeb, 0xa1, - 0xc4, 0x19, 0xdc, 0x45, 0xc2, 0xc6, 0xec, 0xb3, 0xd0, 0xf5, 0x61, 0x48, 0xf3, 0x20, 0x2b, 0x64, - 0x93, 0x82, 0x18, 0x25, 0x3c, 0x3f, 0x31, 0x78, 0xf1, 0x83, 0x34, 0x79, 0x65, 0x3e, 0x6e, 0x71, - 0xf2, 0x02, 0x2c, 0xd9, 0x32, 0x8e, 0x97, 0x8e, 0x68, 0xa6, 0xd6, 0x51, 0xb6, 0x56, 0xee, 0x83, - 0x2b, 0xa8, 0x70, 0xc1, 0xc4, 0xa1, 0x26, 0xe7, 0x03, 0x3d, 0x33, 0x2e, 0x55, 0x31, 0xde, 0x0c, - 0xf4, 0xa0, 0x32, 0xea, 0x2d, 0x9c, 0xdb, 0xac, 0xbb, 0xd1, 0xf6, 0x5d, 0x37, 0xd4, 0xf8, 0x67, - 0x39, 0x1e, 0x79, 0x8b, 0x52, 0xa9, 0x3f, 0x2a, 0x41, 0x84, 0xe3, 0xfa, 0xed, 0x5f, 0xaa, 0x35, - 0xfc, 0xd7, 0x29, 0x95, 0x50, 0x4f, 0xc7, 0x89, 0x83, 0xa1, 0xa9, 0xef, 0xb6, 0x30, 0x71, 0x9c, - 0x24, 0xd5, 0xb6, 0x59, 0x0b, 0x93, 0xd6, 0x53, 0xfa, 0xae, 0x6f, 0x32, 0x3f, 0x49, 0x36, 0xa9, - 0xd9, 0xa2, 0x90, 0x2c, 0x10, 0x4c, 0xda, 0xa1, 0x3b, 0x74, 0x38, 0x84, 0x64, 0xae, 0x82, 0xe2, - 0xd4, 0x9d, 0xfa, 0xa0, 0xc9, 0xfa, 0x90, 0xca, 0x15, 0xa4, 0x93, 0x40, 0x37, 0x77, 0x77, 0x68, - 0xa3, 0x0e, 0xe9, 0x43, 0xd0, 0x35, 0xa5, 0xc0, 0xba, 0x65, 0xed, 0xaa, 0xee, 0xdd, 0x44, 0xcb, - 0x8e, 0xf0, 0xe1, 0x95, 0xee, 0x89, 0x6d, 0x39, 0x8c, 0xfa, 0x25, 0x18, 0xce, 0xa6, 0x85, 0x7e, - 0x46, 0xe8, 0x92, 0xbe, 0x0b, 0x62, 0x36, 0xd1, 0xc8, 0x2f, 0xc3, 0x61, 0x9f, 0xd5, 0xeb, 0x44, - 0xff, 0x27, 0x78, 0xee, 0xb7, 0xf4, 0x61, 0xab, 0x46, 0x20, 0x4c, 0xfc, 0x27, 0x75, 0xa5, 0xdb, - 0x7a, 0x1d, 0xff, 0x65, 0xba, 0x2d, 0xa0, 0x77, 0xaa, 0xe9, 0x8e, 0x8b, 0xb4, 0xb5, 0x8e, 0xb7, - 0x38, 0x31, 0xb2, 0xbd, 0x3e, 0xe2, 0x3f, 0x6b, 0xbd, 0x6e, 0xb1, 0xfe, 0xce, 0x9d, 0xbd, 0x43, - 0xd5, 0xf5, 0x30, 0x8b, 0x86, 0x9c, 0x98, 0x09, 0xa2, 0xfe, 0xa8, 0x5f, 0x40, 0x6f, 0x8e, 0x54, - 0x5b, 0xba, 0x46, 0x74, 0x35, 0x85, 0x6f, 0x4e, 0x56, 0x06, 0xf1, 0x9c, 0xfc, 0x4c, 0x27, 0x72, - 0xf2, 0x73, 0xf1, 0x96, 0x8a, 0xf4, 0xb1, 0x3c, 0xd9, 0xdd, 0xde, 0xad, 0xed, 0x36, 0x04, 0x4f, - 0x1a, 0xdb, 0x8d, 0x66, 0x23, 0x9f, 0x27, 0xc3, 0xfe, 0xb0, 0x31, 0x6c, 0x64, 0x78, 0x52, 0xab, - 0x36, 0x76, 0x6a, 0xfd, 0x34, 0x47, 0x92, 0x94, 0x2c, 0x47, 0x92, 0xe4, 0x2c, 0x53, 0x92, 0xe4, - 0x6c, 0x37, 0xd2, 0x09, 0xa5, 0xa0, 0xbd, 0x93, 0x74, 0x0c, 0x34, 0xfe, 0xdf, 0x7e, 0xc8, 0xac, - 0x0d, 0x97, 0x58, 0x80, 0x52, 0x5d, 0xa8, 0xd6, 0xea, 0x69, 0x64, 0x75, 0xfe, 0x93, 0xe9, 0x51, - 0xcb, 0x6c, 0xed, 0xb4, 0x28, 0x1f, 0x0d, 0x59, 0x54, 0xe3, 0x8c, 0x98, 0x62, 0x60, 0xcf, 0x1e, - 0x26, 0x59, 0x6b, 0xb7, 0x65, 0x6e, 0x9b, 0xb2, 0x08, 0xda, 0xb4, 0x4c, 0x11, 0xbd, 0x59, 0xdf, - 0x6d, 0xed, 0xaf, 0x14, 0x39, 0xdc, 0x3e, 0xaa, 0x1e, 0x1d, 0x3e, 0x7e, 0x84, 0x66, 0xb1, 0x8c, - 0x41, 0x65, 0x93, 0x68, 0x1c, 0x57, 0x48, 0x32, 0xa0, 0x66, 0x63, 0xa5, 0x49, 0xb6, 0xdd, 0x6c, - 0xec, 0xe8, 0x6b, 0x75, 0x89, 0xe4, 0x58, 0x21, 0xa1, 0xd5, 0xcc, 0x62, 0x2f, 0x28, 0x97, 0x16, - 0xe4, 0x5a, 0xdf, 0xac, 0x72, 0xde, 0x8f, 0x4a, 0x53, 0xdf, 0x6e, 0xc3, 0x6f, 0x61, 0x8b, 0x2f, - 0xa1, 0xe1, 0x22, 0xa0, 0x25, 0xec, 0x58, 0xc5, 0x85, 0xf0, 0x1e, 0xb8, 0x17, 0x82, 0x77, 0x37, - 0x89, 0x57, 0xd4, 0xb6, 0x92, 0x21, 0x37, 0xa4, 0x13, 0xcb, 0x9e, 0xb7, 0xb7, 0x4e, 0x7c, 0x06, - 0x8e, 0x20, 0xba, 0x0a, 0x21, 0xa9, 0x9d, 0x6c, 0x69, 0x83, 0x29, 0xb8, 0xa6, 0xd7, 0x4c, 0x62, - 0x83, 0xe6, 0x39, 0x8b, 0x4c, 0xb5, 0x5e, 0x6f, 0x6d, 0xe7, 0x2a, 0x90, 0x9f, 0x80, 0xcc, 0x81, - 0x3b, 0xb1, 0x06, 0xe4, 0x1d, 0x9b, 0xb2, 0x25, 0x22, 0x68, 0x89, 0xb8, 0x01, 0xca, 0x2c, 0x65, - 0xf0, 0x89, 0x7c, 0x6e, 0x76, 0x63, 0xd7, 0x8f, 0x3b, 0xcf, 0x43, 0x4b, 0xa6, 0x12, 0x9c, 0xa7, - 0x76, 0xe8, 0x75, 0xf9, 0x7b, 0xc0, 0x33, 0x00, 0x21, 0x99, 0x51, 0xd3, 0x6b, 0x8d, 0x6a, 0x55, - 0x6f, 0xf2, 0x64, 0x30, 0xf3, 0xae, 0x48, 0x16, 0x73, 0x78, 0x95, 0xca, 0xc8, 0x0a, 0xc7, 0xd3, - 0x3e, 0xfa, 0xc8, 0x15, 0x36, 0x73, 0x67, 0x56, 0x25, 0xae, 0x5f, 0x23, 0xc1, 0xb4, 0x3f, 0xb1, - 0x42, 0x22, 0x7c, 0xd7, 0x80, 0x80, 0x06, 0x42, 0x27, 0x95, 0xf0, 0x36, 0x69, 0x40, 0x4e, 0x4e, - 0x79, 0x5a, 0xb6, 0x14, 0x6f, 0xa5, 0xc7, 0x57, 0x4a, 0x83, 0xc7, 0xb4, 0x52, 0xc1, 0xa1, 0x68, - 0x85, 0x41, 0x05, 0xf1, 0xe7, 0x85, 0x0f, 0x5c, 0x6f, 0xee, 0xf3, 0xa9, 0xff, 0xff, 0xfc, 0x37, - 0x8e, 0x3c, 0x79, 0xc1, 0x0b, 0x27, 0x1d, 0x07, 0x57, 0x1f, 0x8b, 0x10, 0xd9, 0xca, 0xdf, 0x29, - 0x0a, 0xd9, 0xa8, 0xfc, 0xfa, 0xeb, 0x06, 0xf9, 0x15, 0xe3, 0x10, 0xce, 0x30, 0x92, 0x12, 0x19, - 0xc2, 0x5d, 0x1d, 0xcc, 0x3d, 0xf1, 0xad, 0x6b, 0x64, 0x9f, 0xc7, 0x83, 0xc3, 0x80, 0x50, 0x1f, - 0x9e, 0xc1, 0x49, 0xb3, 0x6e, 0x98, 0x49, 0x66, 0x40, 0x0c, 0x42, 0xc9, 0xd6, 0x2f, 0x5b, 0x24, - 0x40, 0x86, 0xb0, 0x39, 0x24, 0xd9, 0x36, 0xe2, 0x31, 0x81, 0x08, 0x7f, 0x02, 0xca, 0xcb, 0xc4, - 0x05, 0x1e, 0xc8, 0x21, 0x7d, 0x88, 0x10, 0x21, 0xd4, 0x80, 0x3a, 0x2b, 0x32, 0x00, 0x92, 0xcb, - 0x1d, 0x64, 0xb1, 0xb1, 0x41, 0x48, 0x3a, 0x0e, 0x82, 0x14, 0x94, 0x0a, 0xf4, 0xab, 0x30, 0x18, - 0x22, 0x06, 0x49, 0x05, 0x46, 0x9d, 0x0d, 0x9e, 0x89, 0x2f, 0xc2, 0x21, 0x7b, 0x63, 0x41, 0xcf, - 0x8b, 0x06, 0x51, 0xcc, 0xd2, 0xd0, 0x66, 0x37, 0x04, 0x3f, 0x70, 0x70, 0x4c, 0x27, 0x8e, 0x92, - 0x06, 0x4e, 0x02, 0x2a, 0x04, 0xbe, 0xdc, 0x7b, 0x52, 0x2a, 0x91, 0x1e, 0x20, 0x14, 0xf2, 0x3e, - 0x51, 0x12, 0xe0, 0x8a, 0x39, 0x0d, 0x39, 0xae, 0xa1, 0xeb, 0x11, 0xda, 0x77, 0xaf, 0x19, 0x7f, - 0xe3, 0xc4, 0x01, 0x71, 0xb6, 0x46, 0xc2, 0x47, 0x85, 0x62, 0xb6, 0x3b, 0xe3, 0x59, 0x63, 0xc6, - 0x85, 0x03, 0x25, 0xef, 0xc6, 0xc3, 0x89, 0xb8, 0x6b, 0xa8, 0x10, 0x68, 0x08, 0xc1, 0x2a, 0x26, - 0x0e, 0x41, 0x32, 0xa8, 0x33, 0x8f, 0x57, 0xe9, 0xc9, 0x86, 0x10, 0x77, 0x02, 0x5c, 0x0d, 0xc6, - 0x3e, 0xae, 0xc6, 0x5b, 0x38, 0x63, 0xc9, 0x80, 0xa6, 0x20, 0xcb, 0x10, 0x48, 0x8f, 0x31, 0x08, - 0x86, 0x82, 0xc1, 0x18, 0x1a, 0x80, 0x56, 0xb1, 0x0d, 0x9a, 0x42, 0xb2, 0x54, 0xea, 0x42, 0x1d, - 0x7b, 0xa6, 0x75, 0xcd, 0x3d, 0x6c, 0x91, 0xa5, 0x08, 0x6e, 0x41, 0xa0, 0xc7, 0xd5, 0x02, 0xc3, - 0x35, 0x03, 0x02, 0x0a, 0x41, 0xcc, 0xc9, 0x75, 0x79, 0xa3, 0xbc, 0xbb, 0x27, 0xe8, 0x55, 0x2f, - 0xeb, 0x24, 0x08, 0x8f, 0xad, 0x50, 0xe2, 0x51, 0xd3, 0x04, 0x56, 0x61, 0xbd, 0x9c, 0x91, 0x40, - 0x87, 0x19, 0x44, 0xf1, 0xc4, 0x0a, 0xb7, 0x38, 0x5e, 0xc8, 0xf2, 0x00, 0x7b, 0xb0, 0x2c, 0xcc, - 0xf1, 0x89, 0xb9, 0x3d, 0xb6, 0xa0, 0xbc, 0x23, 0xb0, 0x93, 0x8d, 0x71, 0x24, 0x25, 0x62, 0x1e, - 0x2d, 0xd5, 0x49, 0x0a, 0x3b, 0xa5, 0x1b, 0xb8, 0x93, 0x34, 0x16, 0x7b, 0x15, 0x80, 0xee, 0xca, - 0xde, 0xf1, 0x67, 0x78, 0xd8, 0x90, 0x35, 0xbd, 0xcd, 0xd2, 0x9f, 0xf4, 0xa9, 0x4f, 0x40, 0xc4, - 0x01, 0x6d, 0x21, 0x85, 0x92, 0x09, 0x48, 0x7e, 0x40, 0x1e, 0x48, 0x0e, 0xb4, 0xa4, 0xf6, 0x8c, - 0xce, 0x03, 0x72, 0x6d, 0x05, 0x56, 0x1f, 0x34, 0xc4, 0x0a, 0xdd, 0x90, 0xa3, 0x25, 0xa8, 0x31, - 0xa1, 0x9c, 0x14, 0x1d, 0x0a, 0xe6, 0xd5, 0xe1, 0x8a, 0x32, 0x1c, 0x8c, 0x85, 0x20, 0x09, 0x3e, - 0x95, 0x74, 0x0c, 0x39, 0x38, 0x5e, 0x19, 0xac, 0x38, 0x11, 0x90, 0xbb, 0xf0, 0x12, 0x70, 0xe2, - 0x78, 0x30, 0x42, 0x13, 0x7e, 0x23, 0x4a, 0xa0, 0xa1, 0x6c, 0x40, 0x84, 0xad, 0x88, 0x05, 0x27, - 0xe4, 0x35, 0xb5, 0x6c, 0xdc, 0x22, 0x42, 0xfa, 0xbe, 0x1b, 0xcc, 0x80, 0x6b, 0xdc, 0x00, 0x95, - 0xc9, 0x7b, 0x10, 0xa3, 0x21, 0xca, 0x18, 0xf4, 0x04, 0x02, 0x94, 0x44, 0x6e, 0xa0, 0xac, 0xa0, - 0x34, 0x76, 0x94, 0x26, 0xc2, 0x46, 0x40, 0x37, 0x43, 0x1c, 0x8f, 0x74, 0x71, 0xd8, 0x35, 0x56, - 0x03, 0xe2, 0x13, 0x68, 0xd0, 0x1d, 0xa8, 0x83, 0x4b, 0x14, 0x34, 0x36, 0x04, 0x93, 0x02, 0x59, - 0xe8, 0xba, 0x31, 0x49, 0x38, 0x29, 0xed, 0xc2, 0x95, 0xcb, 0xa3, 0x51, 0x42, 0x1f, 0x4e, 0x8a, - 0x91, 0xef, 0xce, 0x4a, 0x55, 0xe2, 0x4a, 0xe4, 0x4a, 0x02, 0x95, 0xb4, 0x80, 0x71, 0x9a, 0x24, - 0x9d, 0x47, 0xda, 0x08, 0x3e, 0x05, 0x0c, 0x12, 0xc1, 0x99, 0x98, 0xc3, 0x28, 0x33, 0x59, 0x9a, - 0x97, 0x48, 0x21, 0x2a, 0xe9, 0x38, 0x84, 0x61, 0xc1, 0xc9, 0x32, 0x08, 0xc1, 0xf6, 0x08, 0x4a, - 0x26, 0x22, 0x95, 0x61, 0x9d, 0x6c, 0x62, 0x95, 0x7d, 0xe3, 0x12, 0x78, 0x9e, 0x12, 0x9f, 0x54, - 0x11, 0xd1, 0x7a, 0x86, 0xdf, 0x19, 0xd6, 0x2e, 0x7b, 0x34, 0x2f, 0xd1, 0x69, 0xe8, 0x2e, 0x6b, - 0x88, 0x25, 0x31, 0x53, 0x1d, 0xe2, 0x95, 0x4b, 0x98, 0x74, 0xa5, 0xd5, 0xb5, 0x4a, 0x09, 0x37, - 0xa4, 0x10, 0x00, 0x83, 0xcb, 0x58, 0xea, 0x43, 0x7f, 0xaf, 0xda, 0x84, 0x7f, 0x95, 0x30, 0x45, - 0xe9, 0x6e, 0xac, 0x37, 0xba, 0x94, 0x38, 0x49, 0xdf, 0x73, 0x34, 0x79, 0x28, 0xdd, 0x0e, 0xe8, - 0x1b, 0x3a, 0xf1, 0x40, 0x72, 0xdc, 0x21, 0x1f, 0xbe, 0x23, 0x26, 0x46, 0x6d, 0xdc, 0x2a, 0xb7, - 0x86, 0x42, 0x2c, 0x52, 0x3a, 0x49, 0x43, 0x7d, 0x33, 0x77, 0xa7, 0x20, 0x26, 0xc0, 0x7e, 0x5e, - 0x20, 0x3d, 0x66, 0x1f, 0x41, 0x69, 0x4e, 0xe2, 0xbb, 0x09, 0x36, 0xae, 0xc6, 0xdd, 0x14, 0x83, - 0xb2, 0xdd, 0x64, 0x13, 0xa5, 0xfb, 0x92, 0x41, 0xdc, 0x00, 0x62, 0xf8, 0xde, 0x61, 0x7c, 0xf5, - 0xfc, 0x71, 0xd0, 0xe7, 0x33, 0xf7, 0x47, 0xa0, 0xc7, 0x3e, 0xfb, 0x91, 0xda, 0x8f, 0xdc, 0xa9, - 0xff, 0x23, 0xe0, 0x20, 0x91, 0x4b, 0xf0, 0x14, 0x8f, 0x90, 0x7e, 0x3f, 0xc2, 0x20, 0xa1, 0x0e, - 0x50, 0xcc, 0x81, 0xac, 0x96, 0x2f, 0x75, 0xc5, 0x4d, 0xa2, 0x4f, 0xc1, 0xca, 0x4e, 0x43, 0xc9, - 0x39, 0x68, 0xf8, 0xa7, 0x73, 0x4c, 0x0e, 0xda, 0xb8, 0xaf, 0x7d, 0x3a, 0xb8, 0x1a, 0xf1, 0xb5, - 0x5b, 0xe9, 0x4f, 0x92, 0x91, 0xcf, 0xe6, 0xca, 0xb2, 0x6f, 0x92, 0x3a, 0xdc, 0x7c, 0x00, 0x62, - 0x94, 0x4b, 0x39, 0x61, 0x62, 0x46, 0x04, 0x8d, 0x07, 0xb7, 0x5e, 0xdc, 0x11, 0x10, 0xba, 0x1d, - 0xd0, 0x1c, 0x8c, 0x2d, 0xdb, 0xf4, 0x41, 0x4b, 0xc5, 0x96, 0x8c, 0xe3, 0x2d, 0x14, 0x73, 0x48, - 0xaf, 0x90, 0x9e, 0x53, 0x4f, 0x28, 0xa5, 0x29, 0xc8, 0x27, 0xdf, 0x00, 0xc7, 0x35, 0x81, 0xd4, - 0xe4, 0xd9, 0x76, 0xd3, 0xe3, 0x2f, 0x67, 0xbc, 0x4b, 0xa5, 0x2d, 0xcd, 0xde, 0x77, 0x70, 0x83, - 0xac, 0xe1, 0x3c, 0xb1, 0x33, 0xb1, 0xe6, 0x44, 0xfe, 0x76, 0xcf, 0x19, 0x78, 0x0a, 0x07, 0x52, - 0x3d, 0x1d, 0x61, 0xd3, 0x1f, 0x79, 0xd3, 0x45, 0xf2, 0x92, 0x89, 0xe9, 0xbd, 0x94, 0x3c, 0x24, - 0x2c, 0x5e, 0x67, 0xf6, 0x9a, 0x85, 0x3a, 0x12, 0xba, 0x35, 0xed, 0x42, 0x48, 0xa5, 0x2a, 0x3d, - 0xa4, 0x8c, 0xa1, 0x5a, 0x51, 0xb4, 0x42, 0x31, 0xdf, 0xa1, 0x9a, 0xd2, 0x26, 0x9d, 0x3f, 0x87, - 0xfe, 0xd4, 0x19, 0x70, 0x87, 0x0c, 0x6c, 0xaa, 0xd2, 0xdd, 0x1c, 0x80, 0x87, 0xda, 0x21, 0x7c, - 0x96, 0x4e, 0xd6, 0xb0, 0x85, 0x49, 0x5b, 0x5d, 0x39, 0x5f, 0x97, 0xd9, 0x5c, 0xf3, 0xbf, 0xff, - 0xd7, 0x7f, 0x90, 0x12, 0xf7, 0x5d, 0x21, 0x45, 0x5b, 0x3a, 0xb1, 0x48, 0xfb, 0xe5, 0x2e, 0x17, - 0xe0, 0x92, 0x74, 0x2b, 0x4d, 0x02, 0x82, 0x01, 0x2d, 0x0b, 0xf7, 0x53, 0x76, 0xfb, 0x52, 0xc8, - 0x3b, 0x38, 0xaa, 0x17, 0x1e, 0xf7, 0xec, 0xb1, 0xbb, 0x83, 0xc4, 0x51, 0x06, 0x6f, 0x01, 0x0a, - 0xc7, 0xce, 0x8b, 0xe8, 0x1c, 0x2f, 0x90, 0x4c, 0xab, 0xfd, 0x31, 0x65, 0xfe, 0xfc, 0x8c, 0x47, - 0x61, 0xae, 0x5f, 0xd8, 0xfa, 0x45, 0x5a, 0xa6, 0x32, 0xc7, 0x5b, 0x4e, 0x7c, 0x9f, 0xe3, 0x90, - 0x30, 0x08, 0xae, 0x7b, 0x3d, 0x87, 0x36, 0x0a, 0x2a, 0x4e, 0xa9, 0x21, 0xcb, 0x3e, 0x33, 0xea, - 0x17, 0x54, 0xa8, 0x30, 0x02, 0x0c, 0xc0, 0x6b, 0xd9, 0x07, 0xd7, 0x6e, 0x03, 0x31, 0xe2, 0xde, - 0x2c, 0x01, 0x8f, 0xf5, 0x8c, 0x85, 0x69, 0x33, 0x22, 0x3c, 0x5f, 0x91, 0xf5, 0x0f, 0x8f, 0xfa, - 0x74, 0x42, 0x16, 0x62, 0xc5, 0x24, 0x8a, 0xd7, 0x7b, 0xc1, 0x11, 0x4c, 0x83, 0x55, 0xe0, 0x13, - 0xad, 0xae, 0xa8, 0x40, 0xd0, 0x8e, 0xaf, 0x66, 0x4e, 0x92, 0xc7, 0xd8, 0x45, 0x85, 0xc1, 0x59, - 0x78, 0x92, 0x4e, 0x16, 0xeb, 0x38, 0x82, 0x42, 0x7c, 0x16, 0xfd, 0x97, 0xd5, 0x5a, 0xa0, 0x57, - 0xcb, 0x02, 0x02, 0x30, 0x77, 0x42, 0x72, 0x2b, 0x5d, 0xf0, 0xd8, 0xdc, 0xd2, 0x52, 0xc5, 0xca, - 0x96, 0x19, 0xfb, 0xc1, 0x59, 0x36, 0xac, 0xb8, 0xaa, 0xf7, 0xd0, 0x1d, 0x7c, 0x58, 0x20, 0x7d, - 0xec, 0x08, 0x91, 0x32, 0x40, 0x4c, 0x4b, 0x16, 0x34, 0x0c, 0x1c, 0x00, 0x43, 0x7c, 0x48, 0x07, - 0xe3, 0x02, 0xa6, 0x21, 0x2e, 0xc4, 0xe8, 0xca, 0xfe, 0x8a, 0x1e, 0xc7, 0xe9, 0x7c, 0x21, 0x1f, - 0xf0, 0xe5, 0x2b, 0xf2, 0xc4, 0x30, 0xee, 0xe8, 0xb1, 0x58, 0xb0, 0x4f, 0x6a, 0x80, 0xf0, 0x30, - 0x2e, 0x9f, 0xf8, 0xef, 0xb8, 0x9e, 0x5e, 0xd8, 0x12, 0x91, 0x39, 0x33, 0xb7, 0x54, 0x09, 0x1a, - 0x11, 0xbe, 0xb4, 0x7e, 0x6f, 0x49, 0x9f, 0x4d, 0x40, 0xb9, 0xe5, 0x15, 0xe6, 0xdf, 0x91, 0x9a, - 0x47, 0xa7, 0xa5, 0x43, 0xf2, 0x03, 0xc4, 0x5a, 0xfa, 0x11, 0xff, 0x97, 0xe4, 0xb2, 0xcc, 0x7b, - 0x88, 0x05, 0xac, 0xfd, 0x6f, 0x45, 0xaa, 0xb4, 0x43, 0x9b, 0xc8, 0xbc, 0xc0, 0x7d, 0x19, 0xb3, - 0x1d, 0x4d, 0x9d, 0x34, 0xd6, 0x18, 0xae, 0x6d, 0x61, 0xc1, 0xad, 0xd4, 0x3a, 0x16, 0x08, 0xbe, - 0x04, 0xb8, 0xcc, 0xd1, 0xe5, 0xa9, 0xa8, 0x8d, 0xe4, 0x9b, 0xac, 0x94, 0x2e, 0x4f, 0x15, 0x5f, - 0x71, 0xd2, 0x13, 0x18, 0x61, 0xd1, 0xe3, 0xc0, 0x08, 0x27, 0x2c, 0x94, 0xee, 0xd3, 0xc5, 0x9d, - 0x34, 0x8f, 0xd2, 0xba, 0x7f, 0xc5, 0xf3, 0xcb, 0x36, 0xb8, 0xe6, 0xfb, 0x5c, 0x82, 0xfd, 0xc8, - 0xa1, 0x47, 0x21, 0xbf, 0x2d, 0x95, 0x14, 0x93, 0x6a, 0x2f, 0xb3, 0x0e, 0x26, 0x7f, 0xb9, 0xdc, - 0x58, 0x32, 0xa4, 0x52, 0x31, 0x5d, 0x07, 0x14, 0xd9, 0x10, 0xd5, 0xe3, 0x92, 0x8e, 0xe0, 0x52, - 0x83, 0x2d, 0x45, 0x87, 0x20, 0x10, 0xd1, 0x84, 0x63, 0x72, 0x4e, 0x39, 0xae, 0xc9, 0x82, 0x32, - 0x09, 0xfb, 0x66, 0x9b, 0x64, 0x50, 0x21, 0x20, 0x32, 0x1c, 0xd4, 0x04, 0x8b, 0x64, 0x82, 0xd3, - 0x31, 0x08, 0xed, 0xf9, 0x0a, 0x2f, 0x41, 0x2e, 0x9f, 0xb3, 0x21, 0x9d, 0xda, 0xe1, 0x07, 0x5c, - 0x87, 0x08, 0x32, 0x1c, 0xbd, 0x13, 0xe4, 0xae, 0x4e, 0x26, 0x9d, 0x40, 0x2d, 0xfd, 0x90, 0x2e, - 0x7d, 0x58, 0x7b, 0x8b, 0xe9, 0x1e, 0x0c, 0x5b, 0x7c, 0xb0, 0xe0, 0x48, 0x13, 0x69, 0x5e, 0x64, - 0xb6, 0x8d, 0x53, 0x00, 0xb3, 0x31, 0xee, 0x86, 0xe1, 0xaa, 0x68, 0x82, 0xeb, 0xcd, 0x2c, 0xc8, - 0x2a, 0x7d, 0xb1, 0xc7, 0x20, 0x56, 0xfa, 0xb8, 0x41, 0x8b, 0x94, 0xc4, 0xe4, 0x87, 0x6c, 0x03, - 0x52, 0x44, 0x09, 0x00, 0x1c, 0x8d, 0xb8, 0x27, 0xd3, 0x9f, 0xf3, 0x71, 0x14, 0x2f, 0x5f, 0xdd, - 0x69, 0x1e, 0xb0, 0xb6, 0xc2, 0xb2, 0xe2, 0x98, 0x72, 0x9c, 0x3a, 0x39, 0x06, 0x20, 0x67, 0x4f, - 0x9c, 0xd8, 0x77, 0x89, 0xbc, 0x4c, 0x91, 0x06, 0x35, 0xc9, 0x24, 0xab, 0x47, 0x51, 0x73, 0xa4, - 0x1a, 0x4a, 0x19, 0x9a, 0x29, 0x1f, 0xb3, 0x67, 0xb1, 0x66, 0x7b, 0x0b, 0x78, 0x17, 0xc0, 0x4a, - 0x20, 0x1f, 0x1e, 0x4d, 0x60, 0xf9, 0x16, 0x78, 0x6c, 0x60, 0x0d, 0xad, 0xe5, 0xe4, 0x8d, 0x65, - 0xe6, 0xd3, 0x12, 0x34, 0x59, 0x86, 0x86, 0x31, 0xdc, 0x8f, 0x53, 0x10, 0x34, 0xc6, 0x52, 0xf3, - 0xfd, 0x64, 0xba, 0x09, 0x7d, 0x0b, 0xd5, 0x27, 0xc4, 0xa8, 0x90, 0x17, 0x92, 0x0c, 0x53, 0xc7, - 0x02, 0x55, 0x2f, 0x24, 0x68, 0xb9, 0x03, 0x0c, 0x29, 0x8d, 0xe2, 0x23, 0x89, 0x8a, 0x71, 0xad, - 0xa0, 0xa7, 0x44, 0x50, 0x6c, 0xc0, 0x11, 0x65, 0xf9, 0x76, 0xd1, 0x7b, 0x90, 0xe3, 0x05, 0x00, - 0x43, 0x1b, 0x46, 0x71, 0x21, 0x85, 0x24, 0xb8, 0xf6, 0xe0, 0x5c, 0xdd, 0xc4, 0x76, 0x3d, 0x50, - 0xd3, 0x76, 0x43, 0xee, 0x16, 0x49, 0x6f, 0x38, 0x3a, 0x46, 0xe8, 0x02, 0xb7, 0x2e, 0x93, 0x58, - 0x14, 0x8c, 0x55, 0xf1, 0x50, 0x79, 0x22, 0xaf, 0x38, 0xd6, 0xe9, 0xbc, 0xf9, 0x09, 0xf5, 0xee, - 0x97, 0xab, 0xa5, 0xee, 0x47, 0x5b, 0x96, 0xa6, 0x03, 0xe9, 0x83, 0x48, 0x4d, 0xf0, 0x58, 0x09, - 0x9f, 0x17, 0xb3, 0xd9, 0x35, 0xb3, 0x39, 0x4f, 0x53, 0x94, 0xe0, 0x1b, 0xe8, 0x8c, 0x34, 0x41, - 0x64, 0x3f, 0x78, 0xc3, 0x02, 0xd9, 0x6e, 0xca, 0x40, 0x88, 0x52, 0xb1, 0x1d, 0x82, 0x92, 0x8f, - 0xf0, 0x20, 0xc8, 0x33, 0xb2, 0xb4, 0x5c, 0xa4, 0x4d, 0xb6, 0xb6, 0x92, 0xea, 0x24, 0xb5, 0x84, - 0x5d, 0x49, 0x96, 0x9a, 0xd3, 0x0c, 0x91, 0x1b, 0xa7, 0x57, 0xc7, 0xac, 0xd8, 0xd6, 0x95, 0x76, - 0x63, 0x12, 0x3f, 0x3c, 0xb1, 0xf0, 0x12, 0x4d, 0x3e, 0x4f, 0xf3, 0x74, 0x11, 0x63, 0x10, 0xa1, - 0x03, 0xde, 0x50, 0x08, 0x96, 0x2d, 0x89, 0xd5, 0x70, 0x30, 0x2f, 0xf0, 0x1d, 0x71, 0x3b, 0x83, - 0x0f, 0x69, 0x85, 0x9e, 0x70, 0x02, 0x48, 0xf2, 0xdd, 0xb5, 0x9c, 0xc2, 0x96, 0x34, 0xbe, 0xdc, - 0x54, 0xc6, 0x6e, 0xd8, 0x8a, 0xb9, 0x44, 0xaa, 0xa6, 0x44, 0xf6, 0x01, 0xff, 0x25, 0xe6, 0x49, - 0xbe, 0x22, 0xc8, 0x08, 0xae, 0x14, 0xab, 0xfb, 0x47, 0x14, 0x97, 0xd7, 0x07, 0x75, 0xd1, 0x7d, - 0x2e, 0xdf, 0xc6, 0xba, 0x84, 0xc8, 0x46, 0xee, 0x12, 0xca, 0x58, 0x42, 0xd6, 0xe4, 0x63, 0x6d, - 0x34, 0xdf, 0x69, 0xc9, 0xef, 0x14, 0x93, 0xbf, 0x24, 0x24, 0xc7, 0x66, 0x56, 0x44, 0x2c, 0xf3, - 0xf1, 0x02, 0x92, 0x13, 0xaf, 0x09, 0x71, 0xc1, 0xa8, 0xef, 0xe9, 0x22, 0xd3, 0x25, 0x2e, 0x35, - 0x93, 0x15, 0x8f, 0x24, 0xe5, 0x0f, 0xc8, 0x61, 0xbc, 0x2e, 0x3a, 0x4b, 0xa7, 0xf4, 0x3e, 0xe1, - 0x89, 0x95, 0x7f, 0x4a, 0x84, 0x2e, 0x8e, 0x13, 0x5d, 0x5c, 0xa9, 0x08, 0x91, 0xb9, 0x38, 0xc6, - 0xd8, 0x6f, 0x42, 0xcd, 0xd8, 0xe7, 0xa0, 0x10, 0x22, 0xc7, 0xb2, 0x32, 0xa6, 0xd7, 0xa8, 0x0a, - 0x98, 0xdc, 0x52, 0xc6, 0x20, 0x7e, 0xe4, 0xa1, 0xbd, 0x0b, 0xde, 0x05, 0xf5, 0x42, 0xf1, 0x60, - 0x72, 0xe3, 0x2c, 0x8a, 0x3c, 0x83, 0x9a, 0xe3, 0x7a, 0x33, 0x6a, 0x2f, 0xe3, 0x9b, 0x68, 0xe4, - 0x0e, 0xcf, 0x43, 0xaa, 0xa3, 0x78, 0xcf, 0x58, 0x40, 0x70, 0x06, 0x0b, 0xd7, 0x1c, 0x70, 0x5e, - 0x5a, 0x10, 0x19, 0x27, 0x12, 0x68, 0x2a, 0x72, 0xcb, 0x73, 0xc3, 0x50, 0xc6, 0xd3, 0xef, 0x1b, - 0xf7, 0xfa, 0x33, 0x00, 0x9d, 0x93, 0xba, 0xb1, 0x66, 0x65, 0x97, 0x06, 0xa1, 0xf3, 0x18, 0x0b, - 0x9c, 0x2c, 0x67, 0x64, 0x45, 0x0b, 0x5a, 0xcb, 0xdd, 0x35, 0xb2, 0x1a, 0xfa, 0xc9, 0x46, 0x78, - 0x2c, 0xb1, 0x3a, 0x0e, 0xb2, 0xa0, 0x2b, 0x2e, 0xdb, 0xbd, 0xb1, 0xa7, 0xf4, 0xcc, 0x12, 0x53, - 0x2d, 0x7d, 0xb6, 0xd8, 0x0c, 0x1c, 0x67, 0x56, 0x26, 0x56, 0xdc, 0x05, 0x2c, 0x68, 0x85, 0x6b, - 0x6e, 0x59, 0x82, 0xe6, 0x6a, 0x3f, 0x21, 0x92, 0xc7, 0xe9, 0x96, 0xcd, 0xcd, 0x3b, 0x83, 0x62, - 0x03, 0x06, 0x2a, 0xe6, 0xdf, 0xa9, 0x90, 0xc4, 0x76, 0xcf, 0x87, 0x3b, 0x78, 0x57, 0x05, 0x5f, - 0xf5, 0x6f, 0x4b, 0xaf, 0x34, 0xeb, 0x11, 0x01, 0xf9, 0xe5, 0x2c, 0xc6, 0xd4, 0xf7, 0x21, 0xcc, - 0xb1, 0xe7, 0x39, 0x93, 0x07, 0x38, 0x50, 0xf2, 0x82, 0x79, 0xd0, 0x2f, 0x7c, 0x08, 0x05, 0x58, - 0x4b, 0x20, 0x67, 0xb5, 0xe4, 0xe6, 0x4b, 0xbe, 0x2e, 0xc4, 0xf7, 0x5d, 0x72, 0xef, 0xdb, 0x0a, - 0x3c, 0x9b, 0xce, 0x53, 0x43, 0x04, 0xab, 0x5c, 0x95, 0x56, 0xbe, 0xe1, 0x1e, 0x33, 0xf2, 0xc5, - 0x53, 0x64, 0x47, 0xeb, 0x3b, 0x84, 0x70, 0x8d, 0x4b, 0xc3, 0x41, 0xbf, 0x90, 0xf3, 0x97, 0xb8, - 0x0b, 0xa3, 0x33, 0xa1, 0xfe, 0xc8, 0x72, 0xda, 0x7a, 0x07, 0x57, 0x78, 0x60, 0xbc, 0xb4, 0xf5, - 0x08, 0x01, 0x17, 0xcb, 0x79, 0x3f, 0xb1, 0xc6, 0x9d, 0x5a, 0x4c, 0x4e, 0x2f, 0x0a, 0x07, 0xd4, - 0x09, 0x4a, 0x01, 0xf3, 0xad, 0x61, 0x54, 0xee, 0x8f, 0x4a, 0xc1, 0x74, 0x30, 0x60, 0x41, 0xb0, - 0x58, 0x9b, 0x35, 0xfc, 0xa5, 0x31, 0xa0, 0xc3, 0xa6, 0xce, 0x81, 0x2c, 0x67, 0xe8, 0xe6, 0x40, - 0xd4, 0xaa, 0xbb, 0xad, 0x61, 0x9d, 0x43, 0xcc, 0xa8, 0xef, 0xe4, 0x40, 0x0c, 0x87, 0x83, 0xaa, - 0xbe, 0xcd, 0x21, 0xf8, 0xd2, 0x55, 0x2e, 0x48, 0xb3, 0xd6, 0xac, 0x45, 0xc9, 0xbc, 0x45, 0x0e, - 0x48, 0xbd, 0x5e, 0x8f, 0xe4, 0x94, 0x52, 0x6e, 0x6e, 0x23, 0x2a, 0x9b, 0xa5, 0x3e, 0x8c, 0xbb, - 0xab, 0x85, 0x64, 0x48, 0x9b, 0xbf, 0x61, 0x32, 0x06, 0x93, 0x49, 0x2a, 0xbe, 0x60, 0xa2, 0x03, - 0xfc, 0x4a, 0x12, 0xf1, 0x25, 0x2a, 0xa7, 0x82, 0xd5, 0x05, 0x7f, 0x16, 0x41, 0x15, 0xb0, 0xbc, - 0x2d, 0x52, 0x25, 0x88, 0x58, 0x18, 0x58, 0x24, 0xcf, 0xed, 0xaa, 0xcc, 0x88, 0x03, 0xd6, 0x45, - 0xea, 0x0d, 0x58, 0x93, 0xc9, 0xac, 0x66, 0x32, 0xa1, 0xe4, 0x4a, 0x40, 0xbc, 0x88, 0xdf, 0xdb, - 0xe2, 0x3d, 0x05, 0x20, 0x42, 0xd3, 0xc5, 0xf2, 0xbd, 0x8d, 0xef, 0x51, 0x79, 0x86, 0x81, 0xf5, - 0x82, 0xcf, 0xb7, 0x72, 0xf1, 0x88, 0xca, 0x3c, 0xd4, 0x4e, 0x4b, 0x4c, 0x04, 0x66, 0x10, 0xf0, - 0x8a, 0xe5, 0x86, 0xbf, 0xd6, 0xe2, 0x57, 0xdc, 0x4b, 0x53, 0x9e, 0xcc, 0x93, 0x84, 0x12, 0x38, - 0x84, 0x98, 0x28, 0xc5, 0xac, 0x24, 0x26, 0x3d, 0x25, 0x98, 0x2f, 0x90, 0x90, 0x59, 0x7c, 0x72, - 0x50, 0xa2, 0xe1, 0x61, 0x95, 0xb1, 0x40, 0x72, 0x60, 0x34, 0x8e, 0x49, 0x4a, 0xb5, 0x26, 0x93, - 0x1a, 0xcb, 0xa4, 0x16, 0x4f, 0x9a, 0x2f, 0xa1, 0x78, 0xd3, 0x08, 0x19, 0x4b, 0x76, 0xdc, 0xb8, - 0x28, 0x9d, 0x9a, 0x37, 0x5d, 0xf0, 0x67, 0x3e, 0x4b, 0xdc, 0x16, 0x29, 0x32, 0x3b, 0x36, 0xcd, - 0xab, 0x84, 0xec, 0xf0, 0xdc, 0x24, 0x91, 0xd9, 0xb6, 0xe5, 0x05, 0x56, 0xd0, 0x99, 0x8d, 0xc1, - 0xda, 0x97, 0xf8, 0x12, 0x1d, 0xc8, 0xc1, 0xcc, 0xa7, 0x5e, 0x54, 0x4e, 0x4f, 0x3e, 0x2f, 0xc4, - 0x0b, 0xba, 0x04, 0x41, 0xd2, 0x52, 0x66, 0x49, 0x31, 0x03, 0x21, 0xd3, 0xa2, 0x72, 0x3c, 0x67, - 0xdd, 0x67, 0xe1, 0x0c, 0x37, 0x5e, 0x25, 0x73, 0xd8, 0x62, 0xd2, 0xa5, 0xcd, 0x5b, 0x8c, 0x73, - 0x97, 0xe0, 0xb2, 0xd1, 0x55, 0xe8, 0xb8, 0xe1, 0xa5, 0x53, 0xb2, 0xc0, 0xdd, 0x1c, 0x20, 0xfc, - 0x1e, 0x38, 0x0f, 0x2b, 0x59, 0xed, 0x31, 0x76, 0x73, 0x7d, 0x9c, 0xf8, 0xa3, 0x3e, 0xe5, 0x9b, - 0xc5, 0xe2, 0xdf, 0x72, 0x4d, 0x8d, 0xca, 0x78, 0x6a, 0x3c, 0x19, 0x09, 0x96, 0x83, 0xbb, 0xc2, - 0xc4, 0x48, 0xea, 0x08, 0x91, 0xaa, 0x23, 0x3b, 0xa4, 0x2c, 0xf1, 0xe7, 0x54, 0xbd, 0x3e, 0xf3, - 0x40, 0xcf, 0x01, 0xdd, 0xe4, 0x53, 0x3a, 0xcf, 0x73, 0x03, 0x4b, 0x0c, 0x1e, 0x89, 0x3b, 0x36, - 0x54, 0x42, 0xff, 0x2a, 0x8d, 0x19, 0x3f, 0xa1, 0x9e, 0xda, 0xe1, 0x22, 0x4e, 0xac, 0x07, 0xd7, - 0xa3, 0xe2, 0xcd, 0xc4, 0xee, 0xc4, 0xa7, 0xf5, 0x2f, 0xce, 0x8f, 0x4a, 0x3b, 0xda, 0x1e, 0x24, - 0x13, 0x48, 0x76, 0x70, 0x01, 0x24, 0x0c, 0xbd, 0x76, 0xa5, 0x32, 0x9b, 0xcd, 0xca, 0xb3, 0x7a, - 0xd9, 0xf5, 0x47, 0x95, 0x1a, 0x68, 0x3c, 0x2c, 0xa8, 0x88, 0xa5, 0x07, 0x43, 0xa9, 0xeb, 0x8a, - 0x9c, 0x9c, 0x17, 0xcf, 0xe2, 0x78, 0xd4, 0x8d, 0xa1, 0xe8, 0x44, 0x27, 0x75, 0xfc, 0xaf, 0x74, - 0xf7, 0x3c, 0x1a, 0x8e, 0x09, 0x78, 0x6e, 0x6f, 0x9b, 0x64, 0xbb, 0xdc, 0x1c, 0xd7, 0x74, 0x78, - 0xa8, 0xca, 0xef, 0x5a, 0x8d, 0xa7, 0xe0, 0xb2, 0x8a, 0xef, 0x5e, 0xe1, 0x2a, 0x1f, 0xca, 0x4a, - 0xfc, 0x5a, 0x92, 0xcd, 0x34, 0x92, 0x04, 0x24, 0xdd, 0x80, 0x7a, 0x86, 0xc2, 0xbb, 0xa6, 0x54, - 0x70, 0xb6, 0xfe, 0x7a, 0xd4, 0xdd, 0x52, 0x53, 0xaa, 0x2d, 0x5e, 0x86, 0xaa, 0x03, 0x21, 0x53, - 0x7b, 0xc1, 0x76, 0xe2, 0xd7, 0x99, 0xc8, 0xdf, 0xd6, 0xf5, 0x28, 0x6f, 0x1e, 0xb7, 0x1c, 0x3b, - 0xa2, 0x8b, 0xbe, 0x8b, 0x5a, 0x84, 0x9a, 0x20, 0xcb, 0x96, 0x83, 0x96, 0x5b, 0x27, 0xa5, 0xa6, - 0x77, 0x03, 0x5f, 0xbf, 0xb4, 0x76, 0x86, 0x51, 0x6a, 0x5e, 0x33, 0x56, 0x0d, 0x4d, 0x30, 0x1c, - 0x50, 0x61, 0xfc, 0xa6, 0xf3, 0x11, 0x7e, 0x23, 0xdf, 0x81, 0x7a, 0xc8, 0xda, 0xd5, 0x4a, 0x4b, - 0x55, 0x5e, 0xa5, 0x8e, 0xbb, 0x34, 0x87, 0x8d, 0x28, 0x7f, 0xb6, 0x34, 0x85, 0xd4, 0x9a, 0x6a, - 0x06, 0x5c, 0x1a, 0x39, 0xd5, 0x36, 0xe3, 0x6a, 0x39, 0xae, 0x7c, 0x36, 0x72, 0x5c, 0x15, 0x67, - 0x89, 0x13, 0x2d, 0xd5, 0xb9, 0xb3, 0x36, 0xbe, 0x3d, 0x2f, 0xd6, 0x0c, 0x50, 0x53, 0xe0, 0xda, - 0xe0, 0x37, 0x71, 0x14, 0x3b, 0x19, 0x7d, 0xb3, 0xbe, 0xd3, 0xe9, 0x6f, 0x75, 0xa2, 0x80, 0xc7, - 0x4b, 0xf2, 0xec, 0xea, 0xf1, 0x7b, 0x43, 0xd7, 0xe4, 0xf3, 0x29, 0xa3, 0xe6, 0x7b, 0xc7, 0x9e, - 0x1b, 0xd5, 0x65, 0x4a, 0x80, 0x47, 0x81, 0x4d, 0xa3, 0x16, 0xa7, 0x9c, 0x79, 0x96, 0x51, 0x8f, - 0x5f, 0x8e, 0x9d, 0x6b, 0x50, 0x52, 0xa6, 0x91, 0x1c, 0x2e, 0xea, 0xc8, 0xcd, 0x3a, 0xa2, 0xd1, - 0x05, 0xf7, 0xa5, 0xf0, 0x5c, 0x6d, 0x6a, 0xc3, 0x0e, 0x13, 0x7b, 0xa0, 0x29, 0x9e, 0xd2, 0xc9, - 0x71, 0xbf, 0x42, 0x16, 0x84, 0x05, 0x05, 0x3f, 0x15, 0x55, 0x63, 0x65, 0x67, 0xfd, 0x30, 0x31, - 0x7d, 0xe8, 0x30, 0x31, 0xcd, 0x3d, 0x4c, 0x5c, 0x76, 0xd4, 0x05, 0x2d, 0x1a, 0x2b, 0x87, 0xae, - 0x42, 0x35, 0x73, 0x3e, 0x3a, 0x92, 0x35, 0x53, 0x3c, 0xcd, 0xed, 0xf9, 0xac, 0xab, 0x14, 0x57, - 0x4f, 0x91, 0x69, 0xfc, 0xec, 0x62, 0x4d, 0x2d, 0x2a, 0x7b, 0x15, 0x0e, 0xa1, 0xd1, 0x68, 0xd5, - 0xfb, 0x92, 0x5b, 0xca, 0x57, 0xfb, 0x36, 0xa3, 0xf6, 0xd5, 0xf9, 0x18, 0x24, 0x6f, 0x24, 0x4e, - 0x5b, 0xaf, 0x76, 0xcb, 0x1a, 0x16, 0xb2, 0x67, 0x7a, 0xa8, 0x3c, 0x57, 0xb1, 0xb9, 0x19, 0x3f, - 0x1a, 0xf2, 0x1b, 0xcf, 0x70, 0x6a, 0xe2, 0xb4, 0x4f, 0x0c, 0xb4, 0x7a, 0x9e, 0x8c, 0x66, 0xcf, - 0x93, 0x2d, 0x38, 0x54, 0x5b, 0x42, 0x47, 0x6a, 0x14, 0xa9, 0x78, 0xde, 0x86, 0xd3, 0x1b, 0x0a, - 0x47, 0xcb, 0x43, 0x8a, 0xf0, 0xc6, 0xca, 0x62, 0x96, 0x42, 0x1e, 0xb2, 0xc4, 0x23, 0x4b, 0x98, - 0xf0, 0x2c, 0x39, 0x8f, 0xdf, 0x4e, 0x8e, 0x5d, 0x26, 0x79, 0xca, 0x05, 0xa4, 0x28, 0x6d, 0xe5, - 0x6c, 0x1e, 0xc0, 0xe0, 0x55, 0x92, 0xe3, 0xf3, 0xe0, 0x8e, 0x7b, 0xd3, 0x60, 0x8c, 0xc7, 0x5e, - 0x73, 0xe2, 0xe7, 0x24, 0xe8, 0x93, 0x07, 0xe2, 0x97, 0xdc, 0x10, 0xef, 0xab, 0xa4, 0x55, 0xa3, - 0x35, 0x2a, 0x02, 0xed, 0xe2, 0xf3, 0x49, 0x69, 0x8e, 0xd3, 0x67, 0xb4, 0xec, 0xb4, 0x97, 0x58, - 0x08, 0xb9, 0xb3, 0xc4, 0x21, 0x55, 0x3c, 0xe9, 0x67, 0xb0, 0x02, 0xd5, 0x42, 0x55, 0xb3, 0xe4, - 0xf9, 0x31, 0x62, 0xf1, 0x83, 0xcd, 0x65, 0x07, 0xc8, 0x6d, 0x89, 0x48, 0x3e, 0xa7, 0x2d, 0x5e, - 0x20, 0x29, 0x11, 0x45, 0xd9, 0x53, 0xd9, 0x8b, 0xfc, 0x62, 0x2b, 0x8c, 0x5e, 0xe7, 0xd4, 0xea, - 0xd9, 0x6e, 0x35, 0x8a, 0x8f, 0x0d, 0xa6, 0x05, 0xfe, 0xe1, 0xca, 0x43, 0x71, 0xfa, 0xb9, 0xec, - 0x59, 0xa6, 0x16, 0xf2, 0xa3, 0xac, 0x54, 0x4d, 0x0e, 0x93, 0xc9, 0x5a, 0x4f, 0x28, 0xc6, 0x2d, - 0x3f, 0x5a, 0x77, 0x08, 0xdd, 0xe6, 0x75, 0x6f, 0x6e, 0x8a, 0x8a, 0xd9, 0xe6, 0xa6, 0x95, 0xd3, - 0xc2, 0xca, 0x81, 0x61, 0x2a, 0xcf, 0x24, 0x77, 0x42, 0x79, 0x20, 0x3f, 0xa8, 0x81, 0xc8, 0xe4, - 0x1c, 0x16, 0xe7, 0x07, 0x90, 0x9f, 0x29, 0xa0, 0xc6, 0x3c, 0x9b, 0x81, 0x18, 0x09, 0xe0, 0xfa, - 0xbd, 0xc0, 0xfc, 0x4c, 0x4c, 0x5b, 0x19, 0xf9, 0x78, 0x96, 0xa7, 0x23, 0xd8, 0xcb, 0x23, 0xe3, - 0x03, 0xb1, 0x4f, 0xa2, 0xa0, 0xd4, 0xf0, 0xa0, 0x99, 0x6d, 0xdc, 0x73, 0x38, 0x7d, 0xcf, 0x68, - 0xe8, 0xcf, 0x6a, 0xed, 0x86, 0xe6, 0xdf, 0x07, 0x55, 0xb1, 0xb5, 0x40, 0x9c, 0x5d, 0x07, 0x5b, - 0x07, 0xfa, 0x86, 0x5b, 0x37, 0x48, 0x64, 0x65, 0x61, 0x79, 0x2b, 0x05, 0xbf, 0x58, 0x53, 0x61, - 0x48, 0x1a, 0x55, 0xfd, 0xd7, 0x40, 0x73, 0x0d, 0x1f, 0x3e, 0x4d, 0x51, 0x02, 0x1c, 0x43, 0x90, - 0xcb, 0xb8, 0x50, 0xc9, 0x51, 0x2b, 0x35, 0x55, 0x1b, 0xe3, 0xdd, 0x18, 0x56, 0x79, 0x60, 0x33, - 0xea, 0x9f, 0xe2, 0xb9, 0x3e, 0x5d, 0xd3, 0x35, 0x09, 0x92, 0xd4, 0x0a, 0x60, 0xe5, 0x1b, 0xc3, - 0x84, 0xcf, 0xb9, 0x11, 0x68, 0x56, 0xb9, 0xcf, 0xc0, 0x82, 0x9d, 0x40, 0x9d, 0x05, 0x10, 0x42, - 0x9c, 0x75, 0xb3, 0xcf, 0xf8, 0xce, 0x8c, 0x50, 0xbe, 0xf1, 0x8a, 0xa0, 0x08, 0x16, 0xd0, 0x1c, - 0xcd, 0xcd, 0x42, 0xf1, 0x13, 0x47, 0x78, 0x80, 0x48, 0xd1, 0x6a, 0x86, 0x61, 0x3f, 0xcb, 0x96, - 0x29, 0x56, 0xcb, 0x4d, 0xc0, 0x59, 0xd7, 0xb6, 0xe1, 0xb3, 0xfe, 0x6b, 0xa0, 0xb6, 0x57, 0xf2, - 0x6b, 0x32, 0xbf, 0x29, 0xf3, 0xb3, 0x75, 0xe3, 0x41, 0x80, 0xfb, 0xea, 0x05, 0x8c, 0x8a, 0x50, - 0x8a, 0xd7, 0xbe, 0x7d, 0x67, 0xed, 0x31, 0x54, 0x53, 0xfc, 0xaa, 0xeb, 0x7d, 0x06, 0x16, 0x19, - 0xbc, 0xc6, 0xa2, 0x82, 0x16, 0x1a, 0xa3, 0x4d, 0x25, 0x8b, 0x49, 0xdf, 0x06, 0xfb, 0x8e, 0x69, - 0x28, 0x01, 0x3d, 0xf4, 0xa1, 0x0d, 0x45, 0xee, 0xf0, 0x90, 0x80, 0xb8, 0x5f, 0xa0, 0x70, 0x97, - 0x54, 0x21, 0xc9, 0x8b, 0x31, 0x2e, 0x2d, 0xc4, 0x01, 0x3b, 0x85, 0x2a, 0x21, 0xb7, 0x91, 0x4c, - 0x27, 0x5a, 0xb2, 0x58, 0xb5, 0x06, 0x0f, 0x35, 0xd9, 0x87, 0x35, 0x42, 0xb1, 0xf9, 0x5a, 0xc1, - 0x3a, 0xef, 0xbd, 0x5b, 0xe2, 0x94, 0xe5, 0xd4, 0xe5, 0xd2, 0x7c, 0x6d, 0xe8, 0x2b, 0x57, 0x52, - 0xd8, 0xfc, 0x06, 0x8a, 0xec, 0xcd, 0x0b, 0x3e, 0xbf, 0x5f, 0x81, 0x0f, 0x33, 0x1f, 0x8d, 0x6d, - 0x30, 0xb3, 0xf0, 0x04, 0x65, 0x4e, 0x07, 0x93, 0xfb, 0x2a, 0xae, 0xbf, 0x81, 0x81, 0xc2, 0xcd, - 0x1c, 0x7a, 0x1b, 0x8a, 0x6c, 0xef, 0x68, 0xd5, 0xed, 0xba, 0xd6, 0xd4, 0xbf, 0x75, 0xf8, 0x26, - 0xb3, 0x0e, 0xcf, 0xaa, 0x62, 0x56, 0xad, 0x0a, 0x79, 0xf5, 0x5d, 0xad, 0xb1, 0x9b, 0xc9, 0xab, - 0x61, 0x5e, 0xb5, 0xd9, 0x82, 0x32, 0x5a, 0xad, 0xd1, 0x8a, 0xf3, 0x4c, 0xa1, 0xa9, 0x79, 0xe6, - 0x6e, 0x4d, 0x6b, 0xec, 0x68, 0xf5, 0x9d, 0x6f, 0x51, 0xba, 0xfb, 0x97, 0x3c, 0x58, 0x78, 0xba, - 0xf0, 0xc1, 0x80, 0x45, 0x1a, 0x7e, 0x57, 0xe5, 0x77, 0x8d, 0x7f, 0xd3, 0xaf, 0xd7, 0xc5, 0xe6, - 0xb7, 0x48, 0xbd, 0xe4, 0x32, 0x5f, 0x08, 0x8b, 0xe5, 0xa6, 0x0a, 0xbc, 0x5e, 0x15, 0x7e, 0x1c, - 0x16, 0x3a, 0x57, 0x41, 0xc8, 0x9c, 0x3f, 0xff, 0x64, 0x7b, 0x46, 0x75, 0x73, 0xb3, 0x81, 0xd2, - 0x57, 0x60, 0xb2, 0x8c, 0xd9, 0xae, 0x65, 0xdf, 0x8b, 0x3b, 0xbf, 0x06, 0xed, 0xd4, 0x2b, 0x72, - 0xcb, 0x2a, 0x53, 0x7f, 0x90, 0x0c, 0x99, 0x72, 0x83, 0x4b, 0x78, 0x4d, 0x5c, 0x4b, 0x71, 0x72, - 0x1c, 0xb3, 0xae, 0x70, 0x87, 0x20, 0xfe, 0x0c, 0x39, 0xbc, 0xd6, 0x64, 0xeb, 0xc5, 0xa0, 0xd2, - 0x50, 0xb5, 0xeb, 0x62, 0x31, 0x8a, 0x96, 0x27, 0x72, 0x57, 0x2c, 0x05, 0x9e, 0x85, 0x15, 0xdc, - 0x15, 0x46, 0x57, 0x70, 0x91, 0xef, 0xe5, 0x55, 0xda, 0x52, 0x0b, 0xf3, 0x1b, 0x66, 0x20, 0x01, - 0x14, 0xbc, 0x85, 0x61, 0x1b, 0x1e, 0x7c, 0xe7, 0x50, 0x83, 0x31, 0x1b, 0x5c, 0x81, 0xcf, 0x9c, - 0x81, 0x3c, 0x90, 0x89, 0x6b, 0xd0, 0x3e, 0xee, 0x9d, 0xcf, 0x80, 0x9e, 0x62, 0xca, 0x1a, 0x9c, - 0x3c, 0xd6, 0x97, 0x06, 0xdc, 0xe7, 0x49, 0x6b, 0x90, 0xf2, 0xf0, 0x5a, 0x1a, 0x52, 0xec, 0x99, - 0x58, 0x83, 0xf4, 0x7c, 0x77, 0x84, 0xa7, 0x1d, 0x32, 0xb0, 0x27, 0x32, 0x71, 0xbd, 0x5f, 0x14, - 0xdc, 0xd0, 0x2c, 0xec, 0x01, 0x4f, 0x5a, 0x87, 0x04, 0x45, 0x6c, 0xd6, 0x9f, 0x67, 0x41, 0x45, - 0xda, 0x1a, 0x2c, 0x0f, 0x79, 0xb3, 0x44, 0xc5, 0x94, 0x34, 0x5c, 0x22, 0xee, 0x4b, 0x98, 0x54, - 0x76, 0x14, 0x09, 0x67, 0x38, 0x4e, 0xe2, 0x87, 0x0c, 0x43, 0x7f, 0xca, 0x37, 0x32, 0x31, 0xe9, - 0x29, 0x5c, 0xcb, 0x4c, 0x43, 0xba, 0x3f, 0xb8, 0x2c, 0xcf, 0x6f, 0xe5, 0xc8, 0xe4, 0xa2, 0x39, - 0x2f, 0x2a, 0x65, 0xa5, 0x98, 0x4d, 0xb5, 0x4c, 0x35, 0x4a, 0x7b, 0xd6, 0xc6, 0xa5, 0x3c, 0x70, - 0x29, 0xd6, 0x0c, 0x1e, 0x57, 0x45, 0xa4, 0x90, 0x64, 0x45, 0x2a, 0x93, 0x25, 0xd6, 0xa7, 0xe2, - 0x05, 0x8c, 0x3b, 0x72, 0xe5, 0x61, 0xce, 0xd5, 0x5c, 0xe1, 0x63, 0x2e, 0x4f, 0x5e, 0x5e, 0x4a, - 0xa7, 0xbf, 0x43, 0x8d, 0x2c, 0xa0, 0xef, 0x3e, 0xc3, 0x03, 0xcb, 0xc9, 0xc9, 0x4c, 0x71, 0x56, - 0xf9, 0xe9, 0x22, 0x3e, 0xf2, 0xbf, 0xde, 0xe1, 0xf8, 0x3c, 0x73, 0x52, 0x84, 0xef, 0x66, 0xfb, - 0xc1, 0x1e, 0xdf, 0xdb, 0xa9, 0x6e, 0x7e, 0x6f, 0xe4, 0x1e, 0xb9, 0xa4, 0x5d, 0xaf, 0x7b, 0xd9, - 0x4e, 0xe3, 0x9e, 0xec, 0xff, 0xf8, 0xf1, 0x3e, 0xc4, 0x3f, 0x4f, 0x17, 0x2c, 0x5a, 0xab, 0x0e, - 0xda, 0x89, 0xaf, 0x3b, 0xc2, 0x4b, 0x8e, 0x04, 0xc5, 0x73, 0x10, 0xd4, 0x72, 0xee, 0x06, 0x91, - 0x3e, 0x11, 0xba, 0x1a, 0xe0, 0xf0, 0x96, 0x5d, 0xe7, 0xe2, 0xd8, 0xf8, 0xfa, 0x38, 0x2a, 0x7d, - 0x4b, 0x7b, 0xeb, 0xe9, 0x6b, 0x3a, 0x2c, 0x79, 0x3f, 0x48, 0x02, 0x2b, 0x02, 0xab, 0xcb, 0x64, - 0x8f, 0xe2, 0xa3, 0xf9, 0xf0, 0xfb, 0x72, 0xcf, 0xb8, 0x03, 0x85, 0x15, 0xe8, 0x68, 0x62, 0xed, - 0x92, 0xeb, 0x59, 0x56, 0x9a, 0x59, 0x53, 0x88, 0xd9, 0xf8, 0x8d, 0x07, 0x6e, 0x7c, 0x2d, 0x4c, - 0x49, 0x62, 0xb9, 0x9c, 0x5b, 0x3e, 0x92, 0xb1, 0xa6, 0x8a, 0x3b, 0x75, 0x38, 0x3b, 0xe2, 0xc0, - 0x34, 0xc9, 0xc4, 0xfb, 0x6b, 0x40, 0x61, 0xbf, 0xc3, 0xc7, 0xec, 0x3e, 0x44, 0x85, 0x17, 0x50, - 0xd4, 0x0e, 0x06, 0x19, 0xc9, 0x1e, 0x44, 0x43, 0x56, 0xd4, 0xce, 0xad, 0x21, 0x59, 0x6f, 0x03, - 0x52, 0xc5, 0x22, 0x22, 0x0b, 0x24, 0x02, 0x71, 0x59, 0xbc, 0xbf, 0x28, 0xde, 0x83, 0x23, 0xa2, - 0x3e, 0x16, 0x47, 0x7d, 0x02, 0xe7, 0x9c, 0x68, 0x33, 0xeb, 0xea, 0xaf, 0xb1, 0x44, 0x5b, 0x13, - 0x4b, 0x94, 0x11, 0xba, 0xb9, 0x29, 0x35, 0x1f, 0xf8, 0xf5, 0xd2, 0xc4, 0x08, 0xe1, 0x93, 0x0d, - 0xc6, 0x37, 0x69, 0xc4, 0x8c, 0xb2, 0xc0, 0x05, 0xb1, 0xf6, 0xc2, 0x8e, 0x15, 0xbb, 0x20, 0xe1, - 0x0f, 0xa8, 0xaf, 0xa2, 0xf2, 0x8b, 0x52, 0xb4, 0xe4, 0x7d, 0x52, 0x61, 0x8a, 0x42, 0xb2, 0xb1, - 0xaf, 0xd6, 0xb7, 0x4e, 0x72, 0xbd, 0x90, 0xd0, 0x8b, 0x34, 0xa9, 0x8c, 0x72, 0x9c, 0xd7, 0x38, - 0x13, 0xca, 0x93, 0x3f, 0x99, 0x23, 0xdd, 0xb8, 0xd8, 0x28, 0xd6, 0x5c, 0x7d, 0x77, 0x26, 0x6e, - 0x9e, 0x11, 0x17, 0xf1, 0xac, 0x69, 0x23, 0x41, 0xdd, 0x25, 0x17, 0x12, 0x9c, 0xe2, 0xcb, 0x57, - 0xb2, 0xa9, 0x09, 0x1f, 0xda, 0xab, 0x05, 0x79, 0x72, 0xa6, 0x90, 0x3c, 0xb3, 0x2d, 0x0b, 0x44, - 0x5c, 0xf0, 0xe4, 0x79, 0xce, 0x1f, 0x11, 0x3d, 0x59, 0x04, 0x85, 0xef, 0xcf, 0x3f, 0x0b, 0xc0, - 0xfa, 0xc3, 0x54, 0x9a, 0x96, 0x5b, 0x03, 0x84, 0xed, 0xcc, 0x31, 0x0f, 0x70, 0xa7, 0x35, 0x04, - 0x9b, 0xaa, 0x96, 0x95, 0x59, 0x59, 0x58, 0x20, 0x84, 0x67, 0xe4, 0x96, 0xca, 0xfa, 0x07, 0xae, - 0xd6, 0x93, 0x57, 0xc2, 0x29, 0xed, 0x4b, 0x39, 0x87, 0x9a, 0x73, 0x5e, 0x5f, 0xde, 0x9c, 0x15, - 0x55, 0xb0, 0x95, 0xca, 0xa5, 0xb6, 0x7a, 0xdf, 0x08, 0xd5, 0x04, 0x02, 0x59, 0xd9, 0xd4, 0x56, - 0xa2, 0x67, 0x01, 0x93, 0xbe, 0x61, 0x8a, 0xaa, 0xb2, 0x60, 0x19, 0x6c, 0xb0, 0xf1, 0x44, 0xcf, - 0xdc, 0x0a, 0xa2, 0xa4, 0x86, 0xbf, 0x38, 0x02, 0x28, 0xd7, 0xa4, 0x41, 0x0e, 0x40, 0x84, 0x64, - 0x49, 0x1e, 0x73, 0xaf, 0x44, 0xf3, 0xcc, 0xd8, 0x52, 0x38, 0xb3, 0x94, 0xf6, 0x56, 0x71, 0xfd, - 0xb6, 0xb2, 0x9f, 0x39, 0xf4, 0xd6, 0xc7, 0xdd, 0xb3, 0x8c, 0xfa, 0x5d, 0x2a, 0xb0, 0x54, 0xb7, - 0x2f, 0x17, 0x3f, 0x60, 0xf3, 0xda, 0x0b, 0xb4, 0x2e, 0x51, 0x74, 0xa9, 0xaa, 0xed, 0x82, 0x22, - 0xaf, 0x16, 0x60, 0xa0, 0x2e, 0x35, 0xa2, 0xa8, 0xda, 0xff, 0x93, 0xc6, 0x12, 0xb1, 0x6c, 0xaf, - 0x15, 0x85, 0x92, 0x19, 0x62, 0x96, 0x43, 0xf7, 0x8c, 0xcf, 0xb1, 0x15, 0xea, 0x2d, 0xb5, 0x1c, - 0xe0, 0xec, 0x66, 0xa1, 0xa6, 0x46, 0x0a, 0xc7, 0x37, 0x71, 0xa5, 0xd2, 0x6e, 0x2d, 0x81, 0x67, - 0x10, 0xea, 0x94, 0x7f, 0xb5, 0x32, 0x13, 0x23, 0x74, 0xc6, 0x4f, 0xe1, 0x0e, 0x4b, 0x71, 0x47, - 0xce, 0x76, 0x05, 0x53, 0x0f, 0xaa, 0xcc, 0x34, 0x79, 0x19, 0x0b, 0xcb, 0x57, 0xe8, 0xee, 0xa3, - 0x7a, 0x07, 0xa4, 0x7f, 0x24, 0xe4, 0xb7, 0x4b, 0xb5, 0x7d, 0x5f, 0x93, 0x8f, 0xad, 0xe7, 0x32, - 0xa1, 0xe5, 0xaa, 0xe3, 0xbf, 0x4e, 0xcf, 0xcc, 0x6d, 0x33, 0xd2, 0x98, 0x0a, 0x1c, 0x52, 0x39, - 0xff, 0xdf, 0x5d, 0xce, 0xc4, 0xa7, 0x4c, 0x1f, 0x63, 0x10, 0xb1, 0xcd, 0x84, 0xdf, 0xa8, 0x22, - 0xfd, 0xb4, 0x4b, 0x75, 0xd5, 0xee, 0x0b, 0xdc, 0xb3, 0x89, 0x4b, 0x7d, 0xb9, 0xb9, 0x99, 0x31, - 0xac, 0x19, 0xcd, 0xcd, 0x6b, 0x67, 0xa6, 0x91, 0xf1, 0xb4, 0xa4, 0x21, 0x30, 0x19, 0x44, 0x74, - 0x13, 0xcb, 0x01, 0x82, 0x18, 0xa5, 0xaa, 0xb1, 0xd4, 0xef, 0x2b, 0xe2, 0x98, 0xc3, 0xbd, 0x94, - 0x76, 0xc9, 0x5e, 0xc1, 0xb8, 0x57, 0xae, 0xd7, 0x9f, 0x95, 0xaa, 0xed, 0x95, 0xc4, 0x56, 0xeb, - 0x99, 0xde, 0xae, 0x2e, 0x87, 0x43, 0x26, 0x20, 0xfb, 0x6f, 0xc4, 0x3f, 0xa0, 0x86, 0xa1, 0xe8, - 0xf0, 0x4d, 0x6f, 0x0c, 0xa5, 0xd6, 0x6c, 0xfe, 0x18, 0x47, 0x7f, 0xcc, 0x85, 0xf4, 0xaf, 0x1f, - 0xf0, 0xd7, 0x1f, 0x27, 0x07, 0x1d, 0xa1, 0xcb, 0x7f, 0xc4, 0x75, 0xc1, 0xa6, 0xb9, 0xe2, 0x5e, - 0x95, 0x9b, 0xac, 0x75, 0xfd, 0x2b, 0xd2, 0x90, 0xb9, 0x24, 0xb3, 0xb9, 0x62, 0x76, 0x12, 0xf6, - 0x67, 0xc3, 0xec, 0xbf, 0xcb, 0xf8, 0x5d, 0x86, 0x8c, 0x77, 0xc7, 0x47, 0xe9, 0xc0, 0xf1, 0x11, - 0x94, 0xc3, 0x1b, 0x7f, 0x24, 0x4d, 0xb2, 0x13, 0x0a, 0x7f, 0x99, 0x26, 0xf2, 0x92, 0xac, 0x9f, - 0x1a, 0x55, 0x26, 0xb7, 0x24, 0xad, 0x4b, 0x24, 0xde, 0x07, 0x78, 0xaf, 0x72, 0x52, 0xe3, 0x98, - 0x25, 0xe5, 0xaa, 0xf2, 0x62, 0xb1, 0xec, 0x89, 0x1b, 0x99, 0x02, 0x79, 0x79, 0x27, 0x57, 0x4d, - 0x01, 0x0b, 0x7b, 0xa1, 0xb8, 0xd2, 0x9d, 0x15, 0x14, 0x09, 0x80, 0x3e, 0x8f, 0x7c, 0x4c, 0xfb, - 0x8a, 0xa3, 0x5c, 0xd8, 0xc4, 0xc5, 0xd1, 0xb3, 0x6b, 0x69, 0x0f, 0x96, 0x8b, 0x6f, 0x43, 0xd4, - 0xa0, 0x0a, 0x6a, 0xe4, 0xaa, 0xd4, 0xe5, 0x10, 0x09, 0xc1, 0x1f, 0xc5, 0x49, 0xaf, 0xf8, 0x32, - 0xc7, 0x95, 0x2e, 0xc9, 0x89, 0x92, 0x15, 0xb7, 0x5b, 0xde, 0xf5, 0xb7, 0x86, 0xda, 0xb2, 0x58, - 0x4e, 0x29, 0x0c, 0x52, 0x33, 0x97, 0x5a, 0x3d, 0x5d, 0x60, 0xcb, 0xa8, 0x3f, 0xa2, 0xe4, 0x52, - 0xab, 0xcb, 0x28, 0x47, 0x99, 0xe4, 0xf8, 0xf1, 0x39, 0x50, 0x6a, 0xfe, 0x6a, 0x90, 0xb0, 0x2e, - 0xb9, 0x23, 0x3e, 0xa6, 0x18, 0xb8, 0x0c, 0xcc, 0x72, 0x80, 0x5e, 0xb7, 0x33, 0x86, 0x57, 0x58, - 0x99, 0x3e, 0x7c, 0x7d, 0xdb, 0x52, 0xb5, 0x1f, 0xb6, 0x1a, 0x7a, 0x8e, 0xd1, 0xa8, 0xb6, 0x6b, - 0x4b, 0xad, 0xb1, 0x3a, 0x8d, 0xf6, 0x97, 0xc7, 0x48, 0x3c, 0x49, 0x27, 0xd4, 0xfc, 0xaa, 0xd0, - 0x43, 0x62, 0xa4, 0xfc, 0xc5, 0x01, 0x94, 0x4c, 0xff, 0x75, 0x71, 0x89, 0x55, 0x3c, 0x77, 0x53, - 0x9e, 0x4b, 0x66, 0x72, 0xef, 0x71, 0xf8, 0x67, 0x1b, 0x43, 0x87, 0x3f, 0x66, 0x69, 0x26, 0x51, - 0xc6, 0x0f, 0x31, 0xdd, 0x33, 0xfd, 0x15, 0xd3, 0x8c, 0x3f, 0x5b, 0x27, 0x88, 0x5a, 0x1f, 0x69, - 0xa5, 0xee, 0x11, 0x2f, 0x1c, 0x35, 0x86, 0x91, 0xd7, 0xcd, 0x5c, 0x11, 0xc2, 0x2c, 0xf0, 0x1a, - 0x8f, 0x7e, 0x07, 0x13, 0xc9, 0xec, 0xda, 0x4d, 0xad, 0x54, 0x6d, 0xdd, 0x54, 0x5b, 0xe2, 0x2e, - 0xef, 0x07, 0xe4, 0x4e, 0x71, 0x2a, 0x14, 0x60, 0x12, 0xa7, 0x3c, 0x3d, 0x2d, 0xfa, 0x00, 0x37, - 0x84, 0x4f, 0x0e, 0x83, 0x17, 0x63, 0xcd, 0xbf, 0x36, 0x67, 0x64, 0x2a, 0xdd, 0x4b, 0x8d, 0x97, - 0x7d, 0xfc, 0x3c, 0x9b, 0x2c, 0x20, 0x66, 0x00, 0x7e, 0x2a, 0x03, 0x2f, 0xd7, 0xe7, 0xc2, 0x30, - 0xa6, 0xda, 0x0b, 0xf9, 0x1f, 0x07, 0xd9, 0x0b, 0xfd, 0xee, 0xf2, 0x2e, 0x52, 0x9a, 0x37, 0xa7, - 0x25, 0x10, 0x1b, 0x4b, 0xac, 0xb2, 0xb3, 0x1b, 0xe9, 0xd6, 0xe9, 0xb2, 0x45, 0x28, 0x42, 0x79, - 0xe0, 0xca, 0xe7, 0xba, 0xc2, 0x31, 0x34, 0x21, 0x1f, 0xfd, 0x2e, 0xbe, 0x63, 0xcb, 0x4a, 0xb4, - 0x66, 0x31, 0x12, 0xd4, 0x70, 0x82, 0xa4, 0xbb, 0xae, 0x3f, 0x73, 0xa7, 0xdc, 0x12, 0xfd, 0x97, - 0x9d, 0xfe, 0xe9, 0x52, 0xf4, 0x73, 0x56, 0xe6, 0x84, 0x52, 0x3b, 0x2e, 0xf8, 0xba, 0x14, 0x15, - 0xeb, 0x52, 0xa2, 0xd1, 0x07, 0x09, 0x21, 0xe1, 0x00, 0x75, 0xec, 0xd8, 0xfa, 0x0a, 0x79, 0xe6, - 0x1a, 0x7b, 0x9a, 0xa8, 0x65, 0x4e, 0x0c, 0x31, 0x59, 0x14, 0x7e, 0x53, 0x63, 0x9a, 0x20, 0x01, - 0x12, 0x9a, 0x24, 0x8f, 0xa2, 0xe3, 0xf1, 0xbc, 0xa0, 0x4c, 0xc4, 0xe6, 0x45, 0x9b, 0xf1, 0xc4, - 0xa1, 0xc6, 0x56, 0xc7, 0xe2, 0x5d, 0xd3, 0x09, 0x7c, 0x26, 0x69, 0x65, 0x4c, 0x26, 0x5a, 0x2a, - 0xbb, 0xae, 0xf0, 0xd7, 0x5d, 0x91, 0x9f, 0x3e, 0xbd, 0x9d, 0xb9, 0x95, 0xd1, 0x99, 0x4e, 0xfa, - 0x78, 0xa0, 0x9c, 0x5f, 0xa2, 0x38, 0x76, 0x6d, 0x93, 0xf9, 0x86, 0x72, 0x83, 0x9b, 0xcc, 0x1e, - 0x84, 0x9a, 0x3f, 0x0a, 0xea, 0x56, 0x6c, 0x58, 0xfb, 0x29, 0x21, 0x59, 0x3a, 0x22, 0xb3, 0x6c, - 0x13, 0xe7, 0xb6, 0x02, 0x94, 0x01, 0x29, 0x86, 0x37, 0xf9, 0x10, 0x5f, 0xf5, 0x6f, 0x2b, 0xd1, - 0x5c, 0x2a, 0x27, 0x3b, 0x2b, 0x57, 0xbe, 0xc1, 0x99, 0x24, 0xf1, 0x38, 0xbf, 0xa3, 0xb6, 0xea, - 0x9d, 0xb5, 0x55, 0x57, 0x6b, 0x9b, 0x2f, 0x6b, 0xbb, 0xbd, 0xa3, 0xb6, 0xda, 0x9d, 0xb5, 0xd5, - 0x56, 0x6b, 0xbb, 0x55, 0x1f, 0xe3, 0x0c, 0x27, 0x53, 0x02, 0x0b, 0x60, 0x63, 0xfb, 0xe9, 0xa2, - 0xde, 0xd2, 0xb3, 0x01, 0x44, 0xa4, 0x11, 0x60, 0xdd, 0x5d, 0x39, 0xb7, 0xf9, 0x39, 0xd1, 0x65, - 0xfe, 0x55, 0x93, 0x5c, 0xbf, 0x66, 0xb7, 0xed, 0xb6, 0xbc, 0x1b, 0xb9, 0x43, 0x1c, 0x04, 0xaf, - 0x90, 0xb9, 0xc8, 0x4e, 0x8d, 0xe4, 0x8c, 0xd0, 0x42, 0xec, 0x51, 0xc4, 0x3a, 0xda, 0x56, 0x48, - 0x6d, 0x6b, 0x10, 0xef, 0x0a, 0xb6, 0xd9, 0x70, 0xbd, 0x8a, 0xcc, 0xad, 0x77, 0x6a, 0xc4, 0x65, - 0x2e, 0xb3, 0x2b, 0xbd, 0xbf, 0x53, 0x35, 0xab, 0x66, 0xa6, 0xcc, 0xf2, 0xda, 0x33, 0x35, 0xb5, - 0x23, 0x92, 0x6f, 0x20, 0xc6, 0xc5, 0x86, 0x45, 0xba, 0xbd, 0x9a, 0xce, 0xb7, 0x01, 0xf3, 0x61, - 0x99, 0xde, 0xd1, 0xde, 0x83, 0x81, 0x63, 0x6b, 0x2f, 0x99, 0x2d, 0x6e, 0xe4, 0xd1, 0x96, 0x3b, - 0xdc, 0x3b, 0xcb, 0xcb, 0xfc, 0x6c, 0xea, 0x05, 0xac, 0x1d, 0x3f, 0x74, 0x96, 0x1b, 0xa6, 0x63, - 0x18, 0xbc, 0x08, 0x71, 0x1a, 0x88, 0xeb, 0x06, 0x65, 0x92, 0xe8, 0xb9, 0xdc, 0x41, 0x9c, 0xda, - 0xc6, 0xa8, 0xf3, 0xdd, 0x8b, 0xb8, 0xf7, 0x10, 0x6f, 0x96, 0x94, 0x28, 0x91, 0xd0, 0xd4, 0xe2, - 0xa7, 0xf1, 0x42, 0xd4, 0x90, 0xde, 0x9f, 0x88, 0x5b, 0xf2, 0xe3, 0xed, 0x89, 0x48, 0xb9, 0xf8, - 0x0a, 0x17, 0xb9, 0x8d, 0x39, 0x74, 0xbd, 0x68, 0x59, 0x3c, 0xb5, 0xbf, 0x19, 0xbb, 0xbe, 0xbe, - 0x19, 0x52, 0x52, 0x6f, 0x1c, 0xd3, 0xee, 0x4e, 0x56, 0xe6, 0x6c, 0x82, 0x4c, 0x96, 0xad, 0x93, - 0x7d, 0x62, 0x52, 0xb1, 0x29, 0xcf, 0xd9, 0xc4, 0x55, 0x96, 0xcb, 0xda, 0xd9, 0x3f, 0x43, 0xb2, - 0x58, 0xcb, 0x28, 0x38, 0x89, 0x4a, 0xac, 0x1a, 0x06, 0xde, 0x9c, 0x9e, 0x73, 0x8d, 0xb3, 0xd4, - 0x3a, 0xd6, 0x04, 0xff, 0xe6, 0xd5, 0x84, 0x7a, 0xca, 0xf2, 0x48, 0x98, 0x4c, 0x04, 0xc7, 0x3a, - 0x75, 0x8e, 0x50, 0x09, 0xf1, 0xda, 0x17, 0x48, 0x52, 0xe2, 0xcb, 0xdd, 0xa6, 0x8e, 0x77, 0x35, - 0xe2, 0x77, 0xbb, 0xf1, 0xac, 0x7f, 0xe8, 0xe5, 0x6a, 0xb3, 0x55, 0xae, 0x56, 0xfa, 0x53, 0x18, - 0x85, 0x22, 0x4d, 0xce, 0x1a, 0x82, 0x63, 0xa4, 0x68, 0x2b, 0x35, 0xe1, 0x8d, 0x12, 0x60, 0x18, - 0x2a, 0x8f, 0xa9, 0x51, 0x5e, 0xf0, 0x12, 0x54, 0xbe, 0x07, 0x93, 0x8a, 0x92, 0x3d, 0x49, 0x4f, - 0x52, 0x3d, 0xab, 0xc8, 0x3f, 0x2a, 0xc6, 0xaf, 0x32, 0xe3, 0xf7, 0xe2, 0xe2, 0x6a, 0x06, 0x71, - 0x1d, 0xdb, 0xa5, 0x66, 0xe6, 0x00, 0x5a, 0xfc, 0x27, 0x73, 0xd0, 0x89, 0xe4, 0x86, 0x8d, 0x00, - 0x85, 0xf8, 0x5f, 0x26, 0xfb, 0x3f, 0xdd, 0x35, 0xcc, 0x82, 0xb1, 0x6c, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xed, 0x7d, 0xd9, 0x76, 0xdb, 0x48, + 0xd3, 0xd8, 0xbd, 0x9e, 0x02, 0xc6, 0xcc, 0x67, 0x11, 0x43, 0x10, 0x04, 0x57, 0x49, 0xa4, 0x20, + 0x7f, 0x94, 0x2c, 0xdb, 0xf2, 0x22, 0x6b, 0xb4, 0xd8, 0x1e, 0x3b, 0x3e, 0x23, 0x90, 0x68, 0x92, + 0xb0, 0x40, 0x00, 0x03, 0x80, 0xa2, 0x28, 0x0e, 0xde, 0x20, 0x57, 0x39, 0xb9, 0xc8, 0xdd, 0x7f, + 0x9d, 0x93, 0x77, 0xc8, 0x45, 0x1e, 0x25, 0x4f, 0xf0, 0x3f, 0x42, 0xaa, 0x7a, 0xc1, 0x46, 0x68, + 0xb1, 0x67, 0xfe, 0x93, 0x7c, 0xe7, 0xc4, 0x0b, 0x09, 0x74, 0x57, 0x77, 0x57, 0x57, 0x55, 0xd7, + 0xd2, 0x1b, 0xa5, 0xdd, 0x27, 0xcf, 0xdf, 0x1f, 0x9c, 0xff, 0x76, 0x72, 0x28, 0x4d, 0xa3, 0x99, + 0xb3, 0x27, 0xed, 0x8a, 0x2f, 0x62, 0x5a, 0xf0, 0x35, 0x23, 0x91, 0x29, 0x8d, 0xa6, 0x66, 0x10, + 0x92, 0xc8, 0x90, 0xe7, 0xd1, 0xb8, 0xb6, 0x2d, 0x27, 0xc9, 0x9e, 0x1b, 0x11, 0x17, 0x92, 0x97, + 0x24, 0x94, 0xa5, 0x0d, 0xd7, 0x9c, 0x11, 0x43, 0x36, 0x7d, 0xdf, 0x21, 0xb5, 0x99, 0x37, 0xb4, + 0xe1, 0x6b, 0x41, 0x86, 0x35, 0x48, 0xa8, 0x8d, 0x4c, 0xdf, 0x1c, 0x3a, 0x24, 0x29, 0xb9, 0x91, + 0x14, 0x5d, 0xd8, 0x56, 0x34, 0x35, 0x2c, 0x72, 0x6d, 0x8f, 0x00, 0x1c, 0x5f, 0x54, 0xdb, 0xb5, + 0x23, 0xdb, 0x74, 0x6a, 0xe1, 0xc8, 0x74, 0x88, 0xd1, 0x90, 0x25, 0x56, 0xf1, 0xb5, 0x4d, 0x16, + 0xbe, 0x17, 0x44, 0x69, 0x25, 0xbc, 0xc1, 0x79, 0x34, 0xf5, 0x02, 0x39, 0xc5, 0xe6, 0x9d, 0xe7, + 0xb9, 0xef, 0x3c, 0x6b, 0xee, 0x90, 0x50, 0x32, 0x5d, 0x4b, 0xb2, 0xa3, 0x90, 0x66, 0x06, 0xf6, + 0x70, 0x1e, 0x79, 0x41, 0x88, 0x15, 0x38, 0xb6, 0x7b, 0x25, 0x05, 0xc4, 0x31, 0x64, 0x1b, 0xb2, + 0x00, 0xf9, 0x69, 0x40, 0xc6, 0x86, 0x6c, 0x99, 0x91, 0xd9, 0xb3, 0x67, 0xe6, 0x84, 0xd4, 0x7d, + 0x77, 0xd2, 0x1f, 0x9a, 0x21, 0xe9, 0xb6, 0x55, 0xfb, 0xc3, 0xfe, 0xfb, 0xd3, 0x85, 0xfe, 0xe6, + 0xe5, 0xc4, 0x1b, 0xc0, 0x9f, 0xe3, 0xb3, 0x8b, 0xe9, 0xe1, 0xc5, 0x04, 0x9e, 0xf6, 0xf1, 0x75, + 0xf0, 0xeb, 0xc1, 0xe0, 0x37, 0xfc, 0x1e, 0x6f, 0xd7, 0x77, 0xa6, 0x34, 0xe5, 0xd3, 0xf1, 0xd9, + 0xa9, 0x7e, 0x34, 0x08, 0xc2, 0xf6, 0xa8, 0xfb, 0x2b, 0xbc, 0x1f, 0x9e, 0x3a, 0x1f, 0x0f, 0x9d, + 0xd9, 0xf9, 0x85, 0x3e, 0x78, 0x83, 0xe5, 0x06, 0xf0, 0xf1, 0x9b, 0xe5, 0x43, 0xd1, 0x81, 0xa8, + 0xe5, 0x25, 0x4d, 0x87, 0x3f, 0x5d, 0x7c, 0x7f, 0xc7, 0xd3, 0x0f, 0x07, 0x83, 0x37, 0x83, 0x83, + 0x2c, 0xdc, 0xe1, 0x9b, 0xc1, 0xf3, 0xdc, 0x3b, 0x2b, 0xa5, 0x7f, 0xf8, 0xf4, 0x6a, 0x89, 0x69, + 0xcd, 0x43, 0xe7, 0xf0, 0xd7, 0x0f, 0xbf, 0xb6, 0x0f, 0x7f, 0xfb, 0x70, 0x76, 0x7e, 0x11, 0x0d, + 0x2f, 0x4e, 0x07, 0x3b, 0xdb, 0x37, 0x6f, 0xce, 0x9d, 0x97, 0xfb, 0x17, 0xb7, 0x87, 0x9f, 0xdf, + 0xbc, 0xb8, 0x78, 0xb5, 0xef, 0x8c, 0x3e, 0xd8, 0x2f, 0xf6, 0xad, 0xb3, 0x03, 0xe7, 0xb5, 0x79, + 0x76, 0xf5, 0xba, 0xf5, 0x89, 0x04, 0x07, 0xd1, 0xf9, 0xf5, 0xa7, 0xd3, 0x0f, 0xcb, 0xd7, 0xed, + 0xc1, 0xb6, 0xf7, 0x36, 0xba, 0x69, 0xb8, 0xcb, 0x41, 0x34, 0xbc, 0xf2, 0x3e, 0x05, 0x1f, 0x0f, + 0x1c, 0xcf, 0xd2, 0xff, 0x78, 0x71, 0xf4, 0xc9, 0x9c, 0x9e, 0xbe, 0x1c, 0x7e, 0x7c, 0x79, 0x4c, + 0xce, 0x8e, 0x3b, 0x7a, 0x27, 0xe8, 0x9c, 0x9c, 0xb4, 0x8f, 0x9e, 0x6f, 0xed, 0x34, 0x6e, 0x3b, + 0x9d, 0xc5, 0xad, 0xb5, 0x35, 0x6d, 0x1d, 0xec, 0x37, 0x0f, 0x96, 0xf5, 0xab, 0x51, 0xf3, 0xfa, + 0xfc, 0x40, 0x7f, 0xfe, 0xaa, 0x7a, 0xb6, 0xff, 0xde, 0x19, 0xb6, 0xac, 0xd7, 0xdd, 0x8f, 0xe6, + 0xd9, 0xf8, 0xf6, 0xe6, 0xc4, 0xeb, 0x38, 0xdd, 0x83, 0x76, 0xf8, 0x69, 0x41, 0x26, 0xb7, 0x27, + 0xef, 0x0f, 0x47, 0xcf, 0x67, 0xba, 0xad, 0x7f, 0xb0, 0xa7, 0x37, 0xb7, 0xf3, 0x4f, 0x17, 0xa3, + 0x6a, 0x63, 0xe0, 0xde, 0x2e, 0xde, 0x79, 0xef, 0xeb, 0xdb, 0x17, 0xdb, 0x93, 0x93, 0xa3, 0xd9, + 0x9b, 0x41, 0x78, 0xdb, 0xfe, 0x16, 0x6d, 0x7d, 0x7c, 0x77, 0x13, 0xec, 0x5c, 0x9c, 0x1c, 0xdf, + 0x3a, 0x93, 0xfa, 0xbb, 0x8f, 0x5e, 0xe3, 0xda, 0x7a, 0x7e, 0x16, 0xfc, 0x3a, 0x98, 0x07, 0xaf, + 0xa7, 0xaf, 0xf7, 0xf7, 0xb7, 0x96, 0xe3, 0x5b, 0x3d, 0x78, 0x3b, 0x6e, 0xb5, 0xad, 0x4f, 0xe1, + 0xf9, 0xc9, 0x9b, 0x6f, 0xbf, 0xcd, 0x3e, 0x6f, 0xbd, 0x19, 0xb4, 0xb7, 0xa6, 0x67, 0xcb, 0xed, + 0xb7, 0xd5, 0xe1, 0xe4, 0xd3, 0x4e, 0xf3, 0xec, 0xec, 0xe5, 0xe9, 0x96, 0x3f, 0xbc, 0x98, 0xd9, + 0x83, 0xd7, 0x57, 0xe1, 0x87, 0xd7, 0xa3, 0x77, 0xef, 0x5f, 0x3e, 0xbf, 0x9a, 0x7e, 0x3b, 0x71, + 0xaf, 0xe6, 0x83, 0xce, 0xfc, 0xf8, 0xc5, 0xf3, 0x71, 0xb5, 0x79, 0x54, 0xbd, 0xf9, 0x1c, 0x9c, + 0x2f, 0xfe, 0xf8, 0xe3, 0x74, 0xd2, 0x7a, 0x5d, 0x3d, 0x6c, 0x1d, 0x8e, 0x0f, 0x4e, 0xde, 0x1d, + 0x2d, 0x7c, 0xfb, 0xfc, 0x73, 0xf5, 0x7c, 0xf1, 0x71, 0xfa, 0x69, 0x34, 0x9c, 0xce, 0xcc, 0xd9, + 0xed, 0x6f, 0x6f, 0x86, 0x8b, 0xcf, 0xcf, 0xff, 0xb0, 0x5e, 0x76, 0x9b, 0x5b, 0x83, 0xc1, 0xf6, + 0x87, 0x9b, 0xc3, 0xc1, 0xd9, 0xf5, 0xf9, 0xa4, 0x7e, 0xae, 0x07, 0x6f, 0x46, 0x6f, 0x3e, 0x9f, + 0x0d, 0xa7, 0x66, 0xb4, 0xed, 0x1f, 0xbb, 0xe3, 0xc1, 0x49, 0xa3, 0xde, 0x58, 0x0c, 0x3f, 0x57, + 0x97, 0xd5, 0xee, 0x7e, 0x77, 0xeb, 0x9b, 0x7b, 0xbb, 0x35, 0x3d, 0xd0, 0x5d, 0xe7, 0xa8, 0xbd, + 0x73, 0xed, 0x02, 0xb9, 0x7e, 0x8b, 0xde, 0x9f, 0x7d, 0xae, 0x9e, 0x76, 0x03, 0x7d, 0xb6, 0xd4, + 0xbb, 0xfe, 0xe1, 0xe4, 0x6d, 0x50, 0x9f, 0x9f, 0x0e, 0xa3, 0x1d, 0xff, 0x60, 0x7b, 0xf2, 0x69, + 0xff, 0xc5, 0xe1, 0x52, 0xf7, 0xf5, 0xe7, 0xef, 0x3f, 0x37, 0xc2, 0xd3, 0x8f, 0x57, 0xcb, 0xc1, + 0xbe, 0x1d, 0x9e, 0xbd, 0x6c, 0x0d, 0xb6, 0x5f, 0x6f, 0xbd, 0x7e, 0xe1, 0xdf, 0x8e, 0xde, 0x06, + 0x1f, 0x6f, 0x5e, 0x7d, 0x33, 0x75, 0x73, 0x09, 0xc3, 0xe4, 0x2c, 0x78, 0xe5, 0x39, 0x93, 0xe7, + 0xee, 0xe2, 0x7c, 0xab, 0xfa, 0x71, 0xbc, 0x9c, 0xbf, 0xfb, 0xf8, 0xf9, 0x73, 0xfd, 0x66, 0xb4, + 0xd3, 0x31, 0x27, 0xed, 0x77, 0x07, 0xe7, 0x9f, 0x2f, 0xaa, 0xa7, 0xf5, 0xf7, 0xad, 0x03, 0x7b, + 0xe2, 0xff, 0x7a, 0xfb, 0xf1, 0x68, 0x1a, 0x34, 0x5f, 0x9c, 0xbe, 0x79, 0xfb, 0xca, 0x7e, 0x7d, + 0x7d, 0xfc, 0xc6, 0x79, 0xfb, 0x7a, 0xff, 0x74, 0x46, 0xda, 0xdd, 0xe9, 0xe7, 0xed, 0xdf, 0x5a, + 0xad, 0x6d, 0x62, 0x7f, 0xbb, 0x6a, 0x7c, 0xec, 0x5c, 0xdd, 0xbe, 0xf2, 0x87, 0xdb, 0xd1, 0xd5, + 0xcb, 0xc1, 0xfc, 0xe0, 0xc3, 0xe2, 0xd3, 0x09, 0x69, 0xfb, 0x93, 0x83, 0xb3, 0xd1, 0xcd, 0xd9, + 0xc0, 0x59, 0x90, 0x17, 0x27, 0xdd, 0xea, 0xc1, 0x38, 0xf8, 0x50, 0x7f, 0xdf, 0xf9, 0xf8, 0xea, + 0x4d, 0xab, 0x7d, 0x5b, 0xef, 0xe8, 0xe6, 0xd1, 0x68, 0xfa, 0xeb, 0xab, 0xfd, 0x0e, 0x13, 0xcd, + 0xd7, 0xa7, 0x17, 0x9d, 0xc3, 0xe0, 0xea, 0xf5, 0x64, 0x32, 0x31, 0x0c, 0x79, 0x6f, 0x43, 0xda, + 0x0d, 0x47, 0x81, 0xed, 0x47, 0x7b, 0xf5, 0xba, 0xf4, 0x4f, 0x07, 0xc6, 0xba, 0x1b, 0x12, 0x49, + 0x92, 0x5e, 0x1e, 0x5f, 0x48, 0x2f, 0x0f, 0x8f, 0x0f, 0x4f, 0x07, 0x6f, 0xa5, 0x93, 0x8b, 0xfd, + 0xb7, 0x47, 0x07, 0x12, 0xfc, 0x3f, 0x3c, 0x3e, 0x3b, 0x94, 0x3e, 0x90, 0x20, 0xb4, 0x3d, 0x57, + 0x6a, 0xa9, 0x52, 0x73, 0x47, 0x7a, 0x3d, 0x77, 0x89, 0xd4, 0xd4, 0xf5, 0xad, 0x8d, 0x7c, 0x05, + 0x2f, 0xbc, 0x40, 0x72, 0x01, 0xea, 0xe5, 0xc9, 0xdb, 0xda, 0x75, 0x4b, 0x9a, 0x87, 0x30, 0x74, + 0x55, 0x18, 0xed, 0xb3, 0x19, 0x09, 0x46, 0xa0, 0x44, 0x24, 0x0e, 0x1a, 0x4a, 0xb3, 0x79, 0x18, + 0x49, 0x43, 0x22, 0xf9, 0xf3, 0x00, 0xd4, 0x59, 0x48, 0x2c, 0x4d, 0x3a, 0x00, 0xa5, 0x60, 0x8e, + 0x22, 0x69, 0x06, 0x0a, 0x63, 0xc6, 0x14, 0xc6, 0x3f, 0xed, 0x91, 0xe3, 0xcd, 0x2d, 0x0d, 0x6a, + 0xd8, 0x18, 0x39, 0x66, 0x18, 0x52, 0xa0, 0xc0, 0x73, 0x1c, 0x12, 0xac, 0x16, 0xa1, 0xe1, 0xce, + 0x1d, 0xa7, 0x1f, 0x2e, 0xc3, 0x23, 0x77, 0xec, 0x19, 0xab, 0xb8, 0xcf, 0x8b, 0xb1, 0xf4, 0x68, + 0x4a, 0x40, 0x21, 0xd1, 0xc7, 0x99, 0x69, 0xbb, 0xc7, 0xe6, 0x35, 0x7b, 0xf1, 0xdc, 0xb7, 0x9e, + 0x69, 0x55, 0x94, 0x95, 0xe5, 0x8d, 0xe6, 0x33, 0xd0, 0x51, 0x5a, 0x64, 0x47, 0xa0, 0xda, 0x40, + 0x33, 0x1e, 0x83, 0x0a, 0xab, 0x28, 0x55, 0xf9, 0xdf, 0xff, 0xed, 0xbf, 0xfc, 0x0f, 0x69, 0xb8, + 0x94, 0xb2, 0xba, 0xeb, 0xdf, 0xff, 0xed, 0x3f, 0xff, 0x57, 0x59, 0x5d, 0xd8, 0xae, 0xe5, 0x2d, + 0x34, 0xc7, 0x1b, 0x99, 0x11, 0xd0, 0x43, 0x43, 0x45, 0xa5, 0xd9, 0xee, 0xc8, 0x99, 0x5b, 0x24, + 0xac, 0xc8, 0x8d, 0xe6, 0x96, 0xa6, 0xc3, 0xdf, 0x86, 0xac, 0x3c, 0x8b, 0xa6, 0x76, 0xa8, 0x8d, + 0x49, 0x34, 0x9a, 0x42, 0x15, 0xc4, 0x01, 0xda, 0xbc, 0xb5, 0xaf, 0xc9, 0x19, 0x09, 0xae, 0x49, + 0x50, 0x51, 0x7a, 0x34, 0x7b, 0x66, 0x5e, 0x91, 0x8f, 0x67, 0x15, 0x45, 0x65, 0x6f, 0x02, 0x7d, + 0xb2, 0x90, 0x78, 0xb3, 0x7d, 0x87, 0x44, 0x12, 0x31, 0x26, 0x47, 0x56, 0x45, 0x1e, 0x7a, 0xd6, + 0x52, 0x56, 0xfa, 0x04, 0xda, 0x73, 0x49, 0xf0, 0xea, 0xfc, 0xdd, 0xdb, 0xaa, 0x21, 0xef, 0x4e, + 0x1b, 0x7b, 0x67, 0x91, 0x09, 0x75, 0x4f, 0xa6, 0x91, 0x84, 0x88, 0xef, 0xd6, 0x21, 0x49, 0x66, + 0x35, 0x72, 0x1a, 0x40, 0x7d, 0xe7, 0xf8, 0x94, 0x49, 0xd4, 0x46, 0x01, 0x31, 0x23, 0x82, 0xb5, + 0x88, 0xe6, 0x59, 0xfa, 0x84, 0x44, 0x14, 0x16, 0x52, 0x1f, 0xdf, 0xd9, 0xa7, 0x4f, 0x2b, 0x39, + 0xb4, 0x36, 0x77, 0x6d, 0xd7, 0x9f, 0x47, 0x92, 0x6d, 0x19, 0x32, 0xf6, 0x5a, 0x43, 0xad, 0x1e, + 0x2d, 0x7d, 0x30, 0x10, 0xa3, 0x29, 0x19, 0x5d, 0x0d, 0xbd, 0x1b, 0x30, 0x11, 0xc8, 0xd1, 0x6c, + 0xc2, 0xde, 0xa6, 0x20, 0x84, 0xe0, 0x17, 0x12, 0x82, 0x3d, 0x57, 0xb2, 0x14, 0xc2, 0x6f, 0xe2, + 0xe4, 0x81, 0xf3, 0x1d, 0x9a, 0x87, 0x24, 0x78, 0x31, 0x77, 0xcf, 0x48, 0x34, 0xf7, 0x2b, 0x4a, + 0x6c, 0x86, 0x4b, 0x77, 0x24, 0xdd, 0xc9, 0x8c, 0x15, 0xa3, 0xb2, 0xb9, 0x30, 0xed, 0xa8, 0x42, + 0x3f, 0x19, 0x6c, 0x45, 0xae, 0xcf, 0xec, 0x70, 0x54, 0xa7, 0xcd, 0x69, 0xdf, 0x42, 0xe8, 0x85, + 0xa2, 0xd0, 0xef, 0x0a, 0xf2, 0x21, 0x04, 0xfb, 0x57, 0xa9, 0x8c, 0xe7, 0xee, 0x08, 0xc9, 0x53, + 0x01, 0xf2, 0x2a, 0xab, 0x00, 0x5a, 0x0c, 0x5c, 0xc0, 0x3a, 0x9a, 0x6a, 0xe6, 0x30, 0x04, 0xb2, + 0x78, 0x4a, 0x2d, 0x79, 0x8b, 0xe0, 0x2d, 0x56, 0x94, 0xfe, 0xd8, 0x0b, 0x2a, 0xd8, 0x66, 0x24, + 0x79, 0x63, 0x89, 0x28, 0xb9, 0xbe, 0x99, 0x96, 0xc5, 0x98, 0x5f, 0x89, 0x14, 0xca, 0xfe, 0xc8, + 0x58, 0x71, 0x19, 0xef, 0xad, 0xe2, 0xb8, 0x1f, 0x69, 0xfc, 0x4d, 0x1b, 0x7a, 0x66, 0x00, 0x04, + 0x26, 0xa1, 0xdf, 0x6a, 0x02, 0xc3, 0x93, 0x74, 0x37, 0x78, 0x3f, 0x3e, 0xb1, 0xdd, 0xd0, 0x68, + 0xeb, 0x99, 0x54, 0xdf, 0x76, 0xcf, 0x81, 0x03, 0xa1, 0xf1, 0xe5, 0x6b, 0xd2, 0x3e, 0x31, 0xf4, + 0x3e, 0xd9, 0x5d, 0x2f, 0xd9, 0x27, 0xd5, 0xaa, 0xb2, 0x5e, 0xf4, 0x0b, 0xf9, 0x6a, 0xd0, 0xbe, + 0x04, 0xde, 0xdc, 0xb5, 0x2a, 0xad, 0x5f, 0xd8, 0x0b, 0x98, 0x75, 0x6f, 0x56, 0x81, 0x6e, 0xd1, + 0x7e, 0x04, 0x64, 0x44, 0x80, 0xb6, 0xcf, 0xc1, 0x78, 0x43, 0x0f, 0x84, 0x10, 0x81, 0xc3, 0x72, + 0x04, 0x1e, 0x41, 0x70, 0x6d, 0x3a, 0x19, 0x92, 0x29, 0x2b, 0x2a, 0xd9, 0x42, 0x44, 0x14, 0x8d, + 0x0a, 0x03, 0xb1, 0x9e, 0x3e, 0x1d, 0x25, 0x03, 0x3d, 0x21, 0xcc, 0x84, 0x80, 0x7c, 0x01, 0x8b, + 0x69, 0xcd, 0x40, 0x46, 0xb5, 0x41, 0x5a, 0x0f, 0xd6, 0xcf, 0x7a, 0xf9, 0x45, 0x57, 0x1b, 0x6a, + 0x53, 0x6d, 0xa9, 0xed, 0xaf, 0x7d, 0x7b, 0x5c, 0x21, 0x5f, 0xf4, 0x5c, 0x47, 0xf2, 0xdd, 0x50, + 0x75, 0xc3, 0x40, 0x08, 0x56, 0x38, 0x62, 0x83, 0x0f, 0xa9, 0xc2, 0x08, 0x0e, 0x43, 0x10, 0xaa, + 0x00, 0x56, 0x27, 0x4c, 0x04, 0x22, 0x46, 0xbb, 0x19, 0x84, 0xd7, 0xa8, 0x19, 0x01, 0x35, 0xc9, + 0x97, 0xa8, 0xda, 0xc9, 0xb5, 0xda, 0xec, 0x74, 0x8b, 0x04, 0x2c, 0xe9, 0xb5, 0x1f, 0x10, 0xf4, + 0xb5, 0xf6, 0xb1, 0xe9, 0x4a, 0xa4, 0x12, 0x25, 0x8e, 0x89, 0x03, 0xda, 0x96, 0x4b, 0x78, 0x85, + 0x50, 0x4a, 0xe8, 0xba, 0x12, 0x0b, 0x65, 0xb2, 0x42, 0xf4, 0x90, 0x13, 0x8b, 0x50, 0x61, 0xe2, + 0xc8, 0xb5, 0x48, 0x45, 0x9e, 0x46, 0x91, 0x1f, 0xf6, 0x64, 0xc3, 0x28, 0x0e, 0x6d, 0x3f, 0xf0, + 0x22, 0x6f, 0xe4, 0x39, 0xcf, 0xe4, 0x45, 0x18, 0xca, 0x3d, 0xf8, 0x94, 0x41, 0x0f, 0xf6, 0xea, + 0x75, 0xb9, 0xba, 0xa6, 0x05, 0xbc, 0x30, 0x42, 0x5f, 0xaf, 0x2a, 0xd7, 0x01, 0x0a, 0x51, 0x0e, + 0x3d, 0x87, 0x40, 0xfe, 0xa4, 0x22, 0x33, 0x14, 0xa4, 0x79, 0xe0, 0xc8, 0x80, 0xa9, 0xca, 0xb1, + 0xa0, 0xe3, 0xf8, 0x23, 0x19, 0x9e, 0x79, 0xc0, 0xdb, 0xa8, 0x92, 0x66, 0x68, 0x43, 0xdb, 0x35, + 0x83, 0xe5, 0x39, 0x55, 0x0c, 0x66, 0x10, 0x98, 0xcb, 0xe1, 0x7c, 0x3c, 0x26, 0x81, 0x9c, 0x00, + 0x80, 0x29, 0x20, 0x21, 0x9a, 0x11, 0x83, 0x18, 0x7b, 0xd8, 0x31, 0xa2, 0xa1, 0x57, 0x28, 0x01, + 0x55, 0x23, 0xd3, 0x1d, 0x11, 0x18, 0x3e, 0x03, 0x2c, 0xb7, 0x4f, 0xcb, 0x09, 0x8e, 0x61, 0x7b, + 0x17, 0xb6, 0x1b, 0x6d, 0xd3, 0x3c, 0x5e, 0x86, 0xb2, 0x0d, 0x58, 0x1b, 0x25, 0xac, 0x25, 0x25, + 0xac, 0x25, 0x4f, 0x9f, 0xe6, 0x46, 0x63, 0x8e, 0xfc, 0x38, 0xc2, 0xf3, 0xd4, 0xe7, 0xef, 0xa2, + 0x5d, 0x6a, 0x77, 0x82, 0xe5, 0x2a, 0x32, 0x5e, 0x9f, 0xbd, 0x3f, 0xd6, 0x7c, 0x74, 0xd4, 0x45, + 0xf3, 0x31, 0xd0, 0x0f, 0x54, 0x8a, 0xa7, 0xac, 0x18, 0xa0, 0x2a, 0x28, 0x47, 0x82, 0x00, 0x24, + 0x49, 0xd0, 0x0e, 0xb5, 0x8b, 0x44, 0x93, 0x64, 0xd5, 0x53, 0x45, 0x59, 0x2a, 0x71, 0xf8, 0xa1, + 0xa1, 0x16, 0x7d, 0xfa, 0xf4, 0x0b, 0x7a, 0xf6, 0x80, 0xa3, 0xac, 0xca, 0x88, 0x0a, 0x7b, 0x02, + 0xb9, 0xc3, 0x87, 0xaf, 0xa9, 0x8e, 0x66, 0xe0, 0x8a, 0xe8, 0xee, 0x93, 0x46, 0x32, 0xf2, 0x3d, + 0xd4, 0x3c, 0x25, 0x3a, 0xd5, 0xd3, 0x40, 0x67, 0x1b, 0x11, 0x7c, 0xa2, 0x4e, 0x37, 0x9e, 0xe8, + 0x40, 0x92, 0x67, 0x39, 0x1e, 0x63, 0x44, 0x82, 0x85, 0x59, 0x39, 0xc9, 0x74, 0x40, 0xef, 0x5a, + 0x4b, 0x49, 0x8c, 0x4e, 0x40, 0x24, 0x12, 0xd6, 0xad, 0x44, 0xa3, 0x31, 0xf2, 0x51, 0xbe, 0x68, + 0x76, 0xc8, 0xf8, 0x13, 0x29, 0xf9, 0x16, 0x20, 0xfe, 0x90, 0xa8, 0x34, 0x80, 0x33, 0x01, 0x68, + 0xdf, 0xf8, 0x64, 0x94, 0xab, 0x37, 0xaf, 0x61, 0xe2, 0x38, 0x23, 0x2d, 0xe0, 0x2f, 0x84, 0x4c, + 0x56, 0x72, 0x35, 0x02, 0x5d, 0x69, 0x0e, 0x8d, 0x40, 0x60, 0x4c, 0x04, 0x4b, 0x2a, 0x9f, 0xa0, + 0x34, 0xce, 0xed, 0x19, 0xf1, 0xe6, 0x51, 0x85, 0x51, 0x5f, 0x6d, 0x74, 0x60, 0x24, 0xa5, 0x72, + 0x0b, 0x6c, 0xca, 0xd6, 0xee, 0xf9, 0xc4, 0x2d, 0xad, 0x1c, 0x33, 0xb0, 0xc6, 0x2c, 0x30, 0xe5, + 0x61, 0x29, 0x34, 0xe7, 0x2e, 0x0e, 0xe5, 0x80, 0xfc, 0x31, 0x27, 0x61, 0xf4, 0x1a, 0x4d, 0x0a, + 0xa1, 0x23, 0xf7, 0xf1, 0x46, 0x17, 0x38, 0x83, 0xa2, 0x07, 0x65, 0x9e, 0x94, 0x0c, 0x77, 0x2e, + 0x82, 0x21, 0x04, 0x5a, 0xee, 0xc4, 0x1e, 0xc3, 0x28, 0xe0, 0xfa, 0x19, 0x90, 0x0b, 0x09, 0xa8, + 0x9f, 0x88, 0x36, 0x9f, 0x52, 0x92, 0x35, 0x9f, 0xc3, 0x35, 0x93, 0x4d, 0xe9, 0x65, 0x87, 0xef, + 0x87, 0xdf, 0x80, 0x19, 0x00, 0xab, 0xe4, 0x4c, 0x18, 0x4b, 0xd6, 0xae, 0xc8, 0x32, 0xac, 0x08, + 0x71, 0xf3, 0x40, 0x89, 0x46, 0x5f, 0x55, 0x17, 0x84, 0x29, 0xf4, 0x1d, 0x30, 0xac, 0xb2, 0x26, + 0x03, 0xc9, 0x8d, 0x9c, 0x68, 0x8c, 0xa1, 0xb7, 0x1f, 0xcc, 0xa0, 0xe2, 0xc2, 0xa0, 0x54, 0xdd, + 0x2f, 0x8d, 0xaf, 0x74, 0x94, 0x86, 0x62, 0x20, 0x5f, 0x9b, 0x01, 0x92, 0xe6, 0xdc, 0x3b, 0x40, + 0x5f, 0x01, 0xd2, 0xfb, 0x32, 0xaa, 0x1e, 0x50, 0x60, 0x21, 0x95, 0xd0, 0x7b, 0xb0, 0x55, 0x23, + 0xd5, 0x05, 0x4e, 0x66, 0x85, 0xa5, 0x09, 0x83, 0x8f, 0xca, 0x9f, 0xcc, 0x35, 0x34, 0xd4, 0x13, + 0x81, 0x98, 0x53, 0x8c, 0x84, 0x1b, 0x09, 0x20, 0x71, 0xcc, 0x99, 0x90, 0xaa, 0x63, 0xaa, 0x52, + 0x52, 0xe7, 0x93, 0x6a, 0xbd, 0x48, 0xba, 0x38, 0x3a, 0x3e, 0xdf, 0xfe, 0xfd, 0xdd, 0xe0, 0x93, + 0xd1, 0xec, 0x74, 0x54, 0x7c, 0x6b, 0x74, 0xe9, 0x6b, 0xb7, 0xd3, 0x69, 0x75, 0xfa, 0xc2, 0x0c, + 0x49, 0xa8, 0x66, 0x48, 0xe2, 0x1b, 0x24, 0x7e, 0x27, 0xb8, 0x5a, 0x87, 0x0e, 0xc1, 0xc7, 0xfd, + 0x25, 0x85, 0x88, 0x93, 0x12, 0xa3, 0xc3, 0xb2, 0x02, 0xcc, 0xc5, 0xe1, 0x65, 0xf2, 0xf0, 0x07, + 0x87, 0xcc, 0xff, 0x60, 0x94, 0xbf, 0xa3, 0x04, 0x38, 0x14, 0xbc, 0x4a, 0xa2, 0x81, 0xfe, 0x00, + 0x29, 0x38, 0x98, 0xda, 0x8e, 0x05, 0x64, 0x51, 0xbd, 0xb4, 0x2e, 0x3b, 0x7c, 0xeb, 0x2d, 0x20, + 0x08, 0x35, 0x51, 0x77, 0x25, 0x48, 0x10, 0x2d, 0xf2, 0xd2, 0x74, 0x05, 0x4c, 0x64, 0xa6, 0x84, + 0x6b, 0x47, 0x07, 0xa6, 0xcf, 0x45, 0x48, 0x66, 0x32, 0x27, 0x3f, 0x31, 0x50, 0xf9, 0x50, 0x07, + 0x87, 0xd5, 0x21, 0xcb, 0x5c, 0x32, 0xe1, 0x21, 0xd1, 0x43, 0x60, 0x3c, 0xbd, 0x5d, 0xe0, 0x20, + 0x71, 0x27, 0xd1, 0xb4, 0xef, 0x81, 0xa5, 0x04, 0x1d, 0xed, 0x3d, 0x8b, 0xaa, 0x06, 0xf8, 0xa8, + 0x53, 0x33, 0x18, 0x44, 0x80, 0x1e, 0xb4, 0x7d, 0x01, 0xf8, 0xf2, 0xb6, 0x7b, 0x4f, 0x72, 0x28, + 0xa6, 0x60, 0xe0, 0x87, 0x96, 0xe7, 0xd4, 0x1a, 0x8a, 0x82, 0x55, 0xca, 0x92, 0x5c, 0xcd, 0xc0, + 0xf7, 0xe4, 0x1a, 0x88, 0x40, 0x26, 0xe1, 0xcf, 0x3f, 0xe5, 0xdf, 0xf3, 0x29, 0xbc, 0x54, 0x2f, + 0x8f, 0x8f, 0x20, 0x63, 0x94, 0xa5, 0x5a, 0x32, 0x36, 0x38, 0xc9, 0x9e, 0xe4, 0xb5, 0x1c, 0x41, + 0x2f, 0x19, 0x35, 0xca, 0x13, 0x68, 0x00, 0x1e, 0x65, 0x51, 0x14, 0xa5, 0x90, 0x13, 0x0a, 0xda, + 0xf7, 0x68, 0x2d, 0x99, 0x34, 0x25, 0xc3, 0x66, 0xea, 0x95, 0x0e, 0x5c, 0xeb, 0xf0, 0x86, 0x8c, + 0xe6, 0x11, 0x41, 0x96, 0x83, 0x91, 0x70, 0x55, 0xa6, 0xaa, 0xc0, 0x25, 0xa1, 0x5e, 0x2b, 0xa9, + 0x46, 0xea, 0x6a, 0x46, 0xa2, 0xa9, 0x67, 0xf5, 0x64, 0x10, 0x32, 0x39, 0x56, 0xd0, 0xb9, 0x07, + 0x0d, 0x63, 0xec, 0x81, 0x9f, 0x75, 0xf5, 0x0c, 0x78, 0x49, 0x6e, 0x22, 0x20, 0x64, 0x25, 0x7c, + 0xfa, 0x14, 0x94, 0xca, 0x0b, 0x1b, 0x14, 0xb9, 0x5c, 0x8d, 0xaa, 0x32, 0xd5, 0xb8, 0x63, 0x74, + 0x4f, 0x60, 0xac, 0xca, 0xe8, 0xed, 0x8a, 0x82, 0x2b, 0xb7, 0xe2, 0xa1, 0xca, 0x02, 0x1f, 0x8d, + 0xda, 0xb1, 0x8c, 0xdf, 0xab, 0xac, 0x68, 0x35, 0x9e, 0x2a, 0x1f, 0xa2, 0x66, 0x03, 0x53, 0x10, + 0x45, 0x20, 0x00, 0x58, 0xa3, 0xa2, 0x66, 0x87, 0x28, 0x16, 0x57, 0x70, 0xcc, 0x9b, 0x8e, 0xb3, + 0xac, 0x80, 0x10, 0xed, 0xad, 0x62, 0x25, 0xde, 0xd8, 0xad, 0xf3, 0x70, 0x34, 0x89, 0x4b, 0x37, + 0xfe, 0xe5, 0x02, 0x53, 0x1a, 0x33, 0xad, 0xb2, 0x31, 0xc8, 0x2a, 0x13, 0xb4, 0x65, 0x63, 0xa3, + 0xcb, 0x5d, 0x7f, 0x6f, 0xd7, 0x31, 0x87, 0xc4, 0xd9, 0xa3, 0x85, 0x76, 0xeb, 0xec, 0x45, 0xfa, + 0x4f, 0x2e, 0x60, 0x0a, 0x24, 0x20, 0x0e, 0x08, 0x00, 0x9f, 0x66, 0xa3, 0x31, 0x59, 0x8d, 0x25, + 0xc9, 0x34, 0x9c, 0xca, 0xa7, 0x80, 0xc5, 0x9b, 0x9a, 0xee, 0x04, 0xe3, 0xaa, 0xd4, 0x75, 0x64, + 0x81, 0x5c, 0x28, 0x02, 0x39, 0xaa, 0xde, 0xc0, 0x2f, 0x9e, 0x13, 0x45, 0xde, 0x63, 0x8d, 0x40, + 0x33, 0x9e, 0x4f, 0x25, 0x8a, 0xa6, 0x1b, 0x30, 0x64, 0xcd, 0x00, 0xe7, 0xd7, 0x64, 0x1a, 0x4c, + 0xee, 0xc3, 0xd3, 0x6e, 0x9d, 0x41, 0xdc, 0x57, 0xc2, 0xc1, 0xa0, 0x53, 0x4e, 0xe3, 0xcf, 0x87, + 0xca, 0x2c, 0x1c, 0x30, 0xe3, 0x7b, 0x1f, 0xdf, 0x1e, 0x3e, 0x7f, 0x08, 0x72, 0x02, 0x23, 0x86, + 0x80, 0x4d, 0xdd, 0x7b, 0xc9, 0x1e, 0x1e, 0x82, 0x07, 0x97, 0x41, 0xde, 0x7b, 0x4e, 0xae, 0x1f, + 0x82, 0xe3, 0x18, 0x3f, 0x0a, 0x5b, 0xcb, 0x0c, 0xae, 0xb0, 0x52, 0x70, 0xd1, 0xb1, 0x87, 0x0f, + 0x81, 0x0f, 0xe1, 0x53, 0xde, 0xdb, 0x87, 0xcf, 0x87, 0x20, 0x21, 0x9c, 0x82, 0x8a, 0xc1, 0xed, + 0xbc, 0x7a, 0x90, 0xc8, 0xbe, 0x39, 0x42, 0x9e, 0xe0, 0xd7, 0x43, 0xb0, 0xee, 0xd2, 0x04, 0x7a, + 0x1d, 0xc3, 0xe7, 0x3a, 0x64, 0x9d, 0xc9, 0xcb, 0xde, 0x2e, 0x54, 0xe8, 0xee, 0x49, 0x7f, 0x62, + 0x0a, 0x3e, 0xf1, 0x30, 0x9d, 0x45, 0xe6, 0xc3, 0x79, 0x14, 0x61, 0x9c, 0xce, 0xeb, 0xa3, 0x26, + 0xd7, 0x1e, 0x5d, 0x1c, 0x31, 0xb9, 0x1b, 0x66, 0xde, 0xd1, 0xcf, 0xb2, 0x47, 0x57, 0x38, 0x5f, + 0x4c, 0xed, 0x24, 0xba, 0x3f, 0x95, 0xcd, 0x9f, 0x57, 0xa5, 0xbe, 0x4b, 0x40, 0x7c, 0x07, 0xd0, + 0x87, 0x58, 0x1a, 0x6c, 0xe8, 0xdc, 0x96, 0x51, 0xad, 0xc4, 0x9b, 0x92, 0xba, 0xf9, 0x3b, 0x20, + 0x35, 0xde, 0x04, 0x93, 0xbe, 0xb7, 0x5b, 0xa7, 0x78, 0x64, 0xf0, 0xf5, 0xf7, 0x2e, 0xe3, 0x44, + 0x80, 0x41, 0xc1, 0xe4, 0x0c, 0xbd, 0xc8, 0xa0, 0x3e, 0x09, 0x36, 0xe6, 0x9c, 0x45, 0x5e, 0x00, + 0x43, 0x9a, 0x46, 0x81, 0x11, 0x99, 0x55, 0xd8, 0x28, 0xa1, 0xf9, 0x89, 0x29, 0x14, 0x0f, 0xdc, + 0x18, 0x6a, 0x74, 0xdc, 0xe2, 0x8c, 0x0f, 0x58, 0xb2, 0x74, 0xd2, 0x83, 0x7b, 0xca, 0xb9, 0x5a, + 0x27, 0xf9, 0x5a, 0x69, 0x90, 0x20, 0xa3, 0xc2, 0x05, 0x13, 0x87, 0x9a, 0x9c, 0x0e, 0xf4, 0xdc, + 0xb8, 0x54, 0xd8, 0x78, 0x33, 0xd0, 0xc5, 0xcb, 0xa9, 0xb7, 0x68, 0xe9, 0x90, 0xbd, 0x8d, 0x5e, + 0xe0, 0x79, 0x91, 0x4a, 0x3f, 0x35, 0x31, 0xf2, 0x56, 0xb5, 0xda, 0x70, 0x52, 0x83, 0x10, 0xcc, + 0x0b, 0x7a, 0x3f, 0x35, 0x9a, 0xf8, 0xb7, 0x5f, 0xab, 0xa1, 0x9e, 0x16, 0x89, 0xa3, 0xb1, 0xa5, + 0xef, 0x74, 0x31, 0x71, 0x9a, 0x24, 0x35, 0xb7, 0x48, 0x17, 0x93, 0xd6, 0x53, 0x86, 0x5e, 0x60, + 0x91, 0x20, 0x49, 0xb6, 0x4c, 0xab, 0x6b, 0x42, 0x32, 0x43, 0x30, 0x69, 0xc7, 0xdc, 0x36, 0xc7, + 0x63, 0x48, 0xa6, 0x2a, 0x48, 0xa4, 0x6e, 0xb7, 0x46, 0x1d, 0x32, 0x84, 0x54, 0xaa, 0x20, 0xdd, + 0x04, 0xba, 0xb3, 0xb3, 0x6d, 0xb6, 0x5b, 0x90, 0x3e, 0x06, 0x5d, 0x53, 0x0b, 0xed, 0x5b, 0xd2, + 0x6b, 0xb4, 0xfd, 0x9b, 0x38, 0xed, 0x08, 0x1d, 0x5e, 0xd9, 0x9e, 0x38, 0xb6, 0x4b, 0xcc, 0xa0, + 0x06, 0xc3, 0xd9, 0xb2, 0xa9, 0x07, 0xe2, 0x49, 0x43, 0x0f, 0xc4, 0x6c, 0xa6, 0x4a, 0x3f, 0x8d, + 0xc7, 0x43, 0xd2, 0x6a, 0x49, 0xfa, 0x3f, 0xe0, 0x79, 0xd8, 0xd5, 0xc7, 0xdd, 0xa6, 0x04, 0x71, + 0xec, 0x3f, 0x94, 0x42, 0xb7, 0xf5, 0x16, 0xfe, 0xcd, 0x75, 0x9b, 0x41, 0x6f, 0x37, 0xb2, 0x1d, + 0x67, 0x69, 0x6b, 0x1d, 0xef, 0x52, 0x62, 0xe4, 0x7b, 0xfd, 0x82, 0xfe, 0x59, 0xeb, 0x75, 0x97, + 0x0c, 0xb7, 0x0b, 0xbd, 0xd3, 0x93, 0xde, 0xa1, 0xea, 0x7a, 0x98, 0x45, 0x63, 0x4a, 0xcc, 0x04, + 0xd1, 0x60, 0x32, 0xac, 0xa0, 0x67, 0x28, 0x35, 0xba, 0xba, 0x2a, 0xe9, 0x4a, 0x06, 0xdf, 0x92, + 0xac, 0x1c, 0xe2, 0x25, 0xf9, 0xb9, 0x4e, 0x94, 0xe4, 0x97, 0xe2, 0xcd, 0x15, 0xe9, 0x63, 0x79, + 0xb2, 0xb3, 0xb5, 0xd3, 0xdc, 0x69, 0x33, 0x9e, 0xb4, 0xb7, 0xda, 0x9d, 0x76, 0x39, 0x4f, 0xc6, + 0xc3, 0x71, 0x7b, 0xdc, 0xce, 0xf1, 0xa4, 0xd9, 0x68, 0x6f, 0x37, 0x87, 0x59, 0x8e, 0x24, 0x29, + 0x79, 0x8e, 0x24, 0xc9, 0x79, 0xa6, 0x24, 0xc9, 0xf9, 0x6e, 0x64, 0x13, 0x6a, 0x61, 0x6f, 0x3b, + 0xe9, 0x18, 0x68, 0xfc, 0x7f, 0xd1, 0x21, 0x93, 0x32, 0x67, 0x6d, 0xb8, 0x08, 0x01, 0xca, 0x74, + 0xa1, 0xd1, 0x6c, 0x65, 0x91, 0xd5, 0xe9, 0x9f, 0x5c, 0x8f, 0xba, 0x56, 0x77, 0xbb, 0x6b, 0xd2, + 0xd1, 0x90, 0x47, 0x55, 0x64, 0x08, 0x8a, 0x81, 0x3d, 0x7b, 0x98, 0x64, 0xdd, 0x9d, 0xae, 0xb5, + 0x65, 0xf1, 0x22, 0x68, 0xd3, 0x72, 0x45, 0xf4, 0x4e, 0x6b, 0xa7, 0xbb, 0x5f, 0x28, 0x72, 0xb8, + 0xf5, 0xa2, 0xf1, 0xe2, 0xf0, 0xf1, 0x23, 0x34, 0x8f, 0xa5, 0x00, 0xe5, 0x4d, 0xa2, 0x71, 0x2c, + 0x90, 0x64, 0x64, 0x5a, 0xed, 0x42, 0x93, 0x64, 0xab, 0xd3, 0xde, 0xd6, 0xd7, 0xea, 0x62, 0xc9, + 0x42, 0x21, 0xa1, 0xd5, 0xcc, 0x63, 0xcf, 0x28, 0x97, 0x15, 0xe4, 0xe6, 0xd0, 0x6a, 0x50, 0xde, + 0x4f, 0x6a, 0xf3, 0xc0, 0xe9, 0xc1, 0xff, 0xca, 0x26, 0x5d, 0x77, 0xc4, 0x95, 0x53, 0x9b, 0xd9, + 0xb1, 0xba, 0x37, 0x8a, 0x08, 0x70, 0x2f, 0x02, 0xef, 0x6e, 0x26, 0x96, 0x21, 0x37, 0x93, 0x21, + 0x37, 0x36, 0x67, 0xb6, 0xb3, 0xec, 0x6d, 0x9e, 0x04, 0x04, 0x1c, 0x41, 0x74, 0x15, 0x22, 0xa9, + 0x79, 0xb2, 0xa9, 0x8e, 0xe6, 0xe0, 0x9a, 0x5e, 0x13, 0x8e, 0x0d, 0x9a, 0xe7, 0x3c, 0x32, 0x8d, + 0x56, 0xab, 0xbb, 0x55, 0xaa, 0x40, 0xfe, 0x06, 0x64, 0x0e, 0xbc, 0x99, 0x3d, 0x92, 0x8e, 0xc9, + 0x9c, 0xa4, 0x88, 0xa0, 0x25, 0xa2, 0x06, 0x28, 0xb7, 0xfe, 0x43, 0x57, 0x3f, 0xa8, 0xd9, 0x15, + 0xae, 0x1f, 0x75, 0x9e, 0xc7, 0x36, 0x4f, 0x95, 0x70, 0x82, 0xdd, 0x35, 0xaf, 0xb5, 0x6f, 0x21, + 0xcd, 0x00, 0x84, 0x78, 0x46, 0x53, 0x6f, 0xb6, 0x1b, 0x0d, 0xbd, 0x43, 0x93, 0xc1, 0xcc, 0x7b, + 0x2c, 0x99, 0x4d, 0x32, 0xd6, 0xeb, 0x13, 0x3b, 0x9a, 0xce, 0x87, 0xe8, 0x23, 0xd7, 0xc9, 0xc2, + 0x5b, 0xd8, 0x75, 0x51, 0xbf, 0x2a, 0x85, 0xf3, 0xe1, 0xcc, 0x8e, 0x24, 0xe6, 0xbb, 0x86, 0x12, + 0x68, 0x20, 0x74, 0x52, 0x25, 0xda, 0xa6, 0x19, 0x4a, 0x27, 0xa7, 0x34, 0x2d, 0x5f, 0x8a, 0xb6, + 0x32, 0xa0, 0xcb, 0xcb, 0xe1, 0x63, 0x5a, 0xa9, 0xe3, 0x50, 0xb4, 0xa3, 0xb0, 0x8e, 0xf8, 0xd3, + 0xc2, 0x07, 0x9e, 0xbf, 0x0c, 0xe8, 0x3a, 0xc9, 0xff, 0xfa, 0xef, 0x14, 0x79, 0xe9, 0x25, 0x2d, + 0x9c, 0x74, 0x1c, 0x5c, 0x7d, 0x2c, 0x22, 0xf1, 0x56, 0xfe, 0x95, 0xa2, 0x90, 0x8d, 0xfa, 0x2f, + 0xbf, 0x6c, 0x48, 0xbf, 0x60, 0x1c, 0x42, 0x19, 0x26, 0x65, 0x44, 0x86, 0xad, 0xb4, 0x60, 0xee, + 0x49, 0x60, 0x5f, 0x23, 0xfb, 0x7c, 0x1a, 0x1c, 0x86, 0x92, 0x19, 0xc0, 0x33, 0x38, 0x69, 0xf6, + 0x0d, 0xb1, 0xa4, 0x05, 0x10, 0x43, 0x32, 0xa5, 0xcd, 0x9f, 0x36, 0xa5, 0x10, 0x19, 0x42, 0x96, + 0x90, 0xe4, 0x38, 0x88, 0xc7, 0x0c, 0x22, 0xfc, 0x19, 0x28, 0x2f, 0x0b, 0x57, 0xc5, 0x20, 0x47, + 0x1a, 0x42, 0x84, 0x08, 0xa1, 0x06, 0xd4, 0x59, 0xe7, 0x01, 0x10, 0x5f, 0xa7, 0x91, 0x56, 0x1b, + 0x1b, 0x92, 0x94, 0x8d, 0x83, 0x20, 0x05, 0xa5, 0x02, 0xfd, 0x2a, 0x0c, 0x86, 0x24, 0x43, 0xca, + 0xae, 0x66, 0x6d, 0xd0, 0x4c, 0x7c, 0x61, 0x0e, 0xd9, 0x5b, 0x1b, 0x7a, 0x5e, 0x35, 0x24, 0xd9, + 0xaa, 0x8d, 0x1d, 0x72, 0x23, 0xe1, 0x07, 0x0e, 0x8e, 0xf9, 0xcc, 0x95, 0xb3, 0xc0, 0x49, 0x40, + 0x85, 0xc0, 0x97, 0xbb, 0x4f, 0x6a, 0x35, 0x69, 0x00, 0x08, 0x45, 0xb4, 0x4f, 0xa6, 0x14, 0xe2, + 0x36, 0x03, 0x33, 0xa2, 0xb8, 0x46, 0x9e, 0x2f, 0x99, 0x43, 0xef, 0x9a, 0xd0, 0x37, 0x4a, 0x1c, + 0x10, 0x67, 0x7b, 0xc2, 0x7c, 0x54, 0x28, 0xe6, 0x78, 0x0b, 0x9a, 0x35, 0x25, 0x54, 0x38, 0x50, + 0xf2, 0x6e, 0x7c, 0x9c, 0x29, 0xbc, 0x86, 0x0a, 0x81, 0x86, 0x10, 0xac, 0x62, 0xe2, 0x18, 0x24, + 0xc3, 0x74, 0x97, 0x62, 0x6b, 0x83, 0xb4, 0xc1, 0xc4, 0x5d, 0x02, 0xae, 0x86, 0xd3, 0x00, 0xb7, + 0x30, 0xd8, 0x38, 0xa5, 0x4a, 0x80, 0xa6, 0x20, 0xcb, 0x10, 0x48, 0x4f, 0x31, 0x08, 0x86, 0x82, + 0xe1, 0x14, 0x1a, 0x80, 0x56, 0xb1, 0x0d, 0x33, 0x83, 0x64, 0xad, 0xb6, 0x07, 0x75, 0xec, 0x5a, + 0xf6, 0x35, 0xf5, 0xb0, 0x59, 0x56, 0xb2, 0x2e, 0xc6, 0xd4, 0x02, 0xc1, 0x45, 0x0d, 0x09, 0x14, + 0x02, 0x9b, 0x34, 0xdc, 0xa3, 0x8d, 0xd2, 0xee, 0x9e, 0xa0, 0x57, 0x9d, 0xd6, 0x29, 0x21, 0x3c, + 0xb6, 0x62, 0x4a, 0xbe, 0x69, 0x59, 0xc0, 0x2a, 0xac, 0x97, 0x32, 0x12, 0xe8, 0xb0, 0x80, 0x28, + 0x5e, 0xb2, 0xa3, 0x4d, 0x8a, 0x17, 0xb2, 0x3c, 0xc4, 0x1e, 0xa4, 0x85, 0x29, 0x3e, 0x82, 0xdb, + 0x53, 0x1b, 0xca, 0xbb, 0x0c, 0x3b, 0xde, 0x18, 0x45, 0x92, 0x23, 0xe6, 0x9b, 0xb5, 0x96, 0x94, + 0xc1, 0x4e, 0xde, 0x0b, 0xbd, 0x59, 0x16, 0x8b, 0xdd, 0x3a, 0x40, 0xef, 0xf1, 0xde, 0xd1, 0x67, + 0x78, 0xd8, 0xe0, 0x35, 0xbd, 0xcb, 0xd3, 0x5f, 0x1a, 0x9a, 0x81, 0x04, 0x22, 0x0e, 0x68, 0x33, + 0x29, 0xe4, 0x4c, 0x40, 0xf2, 0x03, 0xf2, 0x40, 0x72, 0xa0, 0xa5, 0xe9, 0x2c, 0xcc, 0x65, 0x28, + 0x5d, 0xdb, 0xa1, 0x3d, 0x04, 0x0d, 0x51, 0xa0, 0x1b, 0x72, 0xb4, 0x06, 0x35, 0x26, 0x94, 0xe3, + 0xa2, 0x63, 0x82, 0x79, 0x75, 0xa9, 0xa2, 0x8c, 0x46, 0x53, 0x26, 0x48, 0x8c, 0x4f, 0x35, 0x1d, + 0x43, 0x0e, 0x8a, 0x57, 0x0e, 0x2b, 0x4a, 0x04, 0xe4, 0x2e, 0xbc, 0x84, 0x94, 0x38, 0x3e, 0x8c, + 0xd0, 0x84, 0xdf, 0x88, 0x12, 0x68, 0x28, 0x07, 0x10, 0x21, 0x05, 0xb1, 0xa0, 0x84, 0xbc, 0x36, + 0x6d, 0x07, 0xf7, 0xd5, 0x48, 0xc3, 0xc0, 0x0b, 0x17, 0xc0, 0x35, 0x6a, 0x80, 0x34, 0xe9, 0x3d, + 0x88, 0xd1, 0x18, 0x65, 0x0c, 0x7a, 0x02, 0x01, 0x4a, 0x22, 0x37, 0x50, 0x96, 0x51, 0x1a, 0x3b, + 0x6a, 0x26, 0xc2, 0x26, 0x81, 0x6e, 0x86, 0x38, 0x1e, 0xe9, 0xe2, 0x92, 0x6b, 0xac, 0x06, 0xc4, + 0x27, 0x54, 0xa1, 0x3b, 0x50, 0x07, 0x95, 0x28, 0x68, 0x6c, 0x0c, 0x26, 0x05, 0xb2, 0xd0, 0x75, + 0x23, 0x9c, 0x70, 0x5c, 0xda, 0x99, 0x2b, 0x57, 0x46, 0xa3, 0x84, 0x3e, 0x94, 0x14, 0x93, 0xc0, + 0x5b, 0xd4, 0x1a, 0x92, 0xc7, 0x91, 0xab, 0x31, 0x54, 0xb2, 0x02, 0x46, 0x69, 0x92, 0x74, 0x1e, + 0x69, 0xc3, 0xf8, 0x14, 0x12, 0x48, 0x04, 0x67, 0x62, 0x09, 0xa3, 0xcc, 0x22, 0x59, 0x5e, 0x22, + 0x85, 0x4c, 0x4e, 0xc7, 0x31, 0x0c, 0x0b, 0x4a, 0x96, 0x51, 0x04, 0xb6, 0x87, 0x51, 0x32, 0x11, + 0xa9, 0x1c, 0xeb, 0x78, 0x13, 0x45, 0xf6, 0x4d, 0x6b, 0xe0, 0x79, 0x72, 0x7c, 0x32, 0x45, 0x58, + 0xeb, 0x39, 0x7e, 0xe7, 0x58, 0x9b, 0xf6, 0x68, 0x59, 0x33, 0xe7, 0x91, 0x97, 0xd6, 0x20, 0x24, + 0x31, 0x57, 0x1d, 0xe2, 0x55, 0x4a, 0x98, 0x6c, 0xa5, 0x8d, 0xb5, 0x4a, 0x25, 0x6a, 0x48, 0x21, + 0x00, 0x06, 0x97, 0xb1, 0x36, 0x84, 0xfe, 0x5e, 0xf5, 0x24, 0xfa, 0x55, 0xc3, 0x14, 0x79, 0x6f, + 0x63, 0xbd, 0xd1, 0x54, 0xe2, 0x38, 0x7d, 0xcf, 0xd1, 0xe4, 0xa1, 0x74, 0xbb, 0xa0, 0x6f, 0xcc, + 0x99, 0x0f, 0x92, 0xe3, 0x8d, 0xe9, 0xf0, 0x9d, 0x10, 0x36, 0x6a, 0x45, 0xab, 0xd4, 0x1a, 0x32, + 0xb1, 0xc8, 0xe8, 0x24, 0x15, 0xf5, 0xcd, 0xd2, 0x9b, 0x83, 0x98, 0x00, 0xfb, 0x69, 0x81, 0xec, + 0x98, 0x7d, 0x04, 0xa5, 0x29, 0x89, 0xef, 0x26, 0xd8, 0xb4, 0x21, 0xba, 0xc9, 0x06, 0x65, 0xaf, + 0x43, 0x66, 0xf2, 0xde, 0x2b, 0x02, 0x71, 0x03, 0x88, 0xe1, 0x7b, 0x97, 0xd0, 0xad, 0x06, 0x8f, + 0x83, 0x3e, 0x5f, 0x78, 0xdf, 0x03, 0x3d, 0x0d, 0xc8, 0xf7, 0xd4, 0xfe, 0xc2, 0x9b, 0x07, 0xdf, + 0x03, 0x0e, 0x12, 0x99, 0x82, 0x67, 0x78, 0x84, 0xf4, 0xfb, 0x1e, 0x06, 0x31, 0x75, 0x80, 0x62, + 0x0e, 0x64, 0xb5, 0x03, 0xae, 0x2b, 0x6e, 0x12, 0x7d, 0x0a, 0x56, 0x76, 0x1e, 0x71, 0xce, 0x41, + 0xc3, 0x7f, 0x3b, 0xc7, 0xf8, 0xa0, 0x15, 0x7d, 0x1d, 0x9a, 0xa3, 0xab, 0x09, 0x5d, 0x5c, 0xe6, + 0xfe, 0xa4, 0x34, 0x09, 0xc8, 0x52, 0x4e, 0xfb, 0xc6, 0xa9, 0x43, 0xcd, 0x07, 0x20, 0x66, 0x52, + 0x29, 0x97, 0x08, 0x9b, 0x11, 0x41, 0xe3, 0x41, 0xad, 0x17, 0x75, 0x04, 0x98, 0x6e, 0x07, 0x34, + 0x47, 0xb8, 0x44, 0x10, 0x80, 0x96, 0x12, 0x96, 0x8c, 0xe2, 0xcd, 0x14, 0x73, 0x64, 0x5e, 0x21, + 0x3d, 0xe7, 0x3e, 0x53, 0x4a, 0x73, 0x90, 0x4f, 0xba, 0x6b, 0x90, 0x6a, 0x02, 0xae, 0xc9, 0xf3, + 0xed, 0x66, 0xc7, 0x5f, 0xc9, 0x78, 0xe7, 0x4a, 0x9b, 0x9b, 0xbd, 0x6f, 0xe0, 0x06, 0xd9, 0xe3, + 0x65, 0x62, 0x67, 0x84, 0xe6, 0x44, 0xfe, 0xee, 0x9d, 0x13, 0xf0, 0x14, 0x0e, 0xb8, 0x7a, 0x7a, + 0x81, 0x4d, 0x7f, 0xa4, 0x4d, 0x57, 0xa5, 0x57, 0x84, 0x4d, 0xef, 0x65, 0xe4, 0x21, 0x61, 0xf1, + 0x3a, 0xb3, 0xd7, 0x2c, 0xd4, 0x0b, 0xa6, 0x5b, 0xb3, 0x2e, 0x04, 0x57, 0xaa, 0xdc, 0x43, 0xca, + 0x19, 0xaa, 0x82, 0xa2, 0x65, 0x8a, 0xf9, 0x0e, 0xd5, 0x94, 0x35, 0xe9, 0xf4, 0x39, 0x0a, 0xe6, + 0xee, 0x88, 0x3a, 0x64, 0x60, 0x53, 0xe5, 0xbd, 0xa7, 0x23, 0xf0, 0x50, 0xfb, 0x12, 0x9d, 0xa5, + 0xe3, 0x35, 0x6c, 0x62, 0xd2, 0xe6, 0x1e, 0x9f, 0xaf, 0xcb, 0xed, 0x48, 0xfa, 0xdf, 0xff, 0xed, + 0x7f, 0x4a, 0x35, 0xea, 0xbb, 0x42, 0x8a, 0x9a, 0x3a, 0xb1, 0x48, 0xfb, 0x74, 0x4b, 0x10, 0x70, + 0x89, 0xbb, 0x95, 0x96, 0x04, 0x82, 0x01, 0x2d, 0x33, 0xf7, 0x93, 0x77, 0xfb, 0x92, 0xc9, 0x3b, + 0x38, 0xaa, 0x17, 0x3e, 0xf5, 0xec, 0xb1, 0xbb, 0xa3, 0xc4, 0x51, 0x06, 0x6f, 0x01, 0x0a, 0x0b, + 0xe7, 0x85, 0x75, 0x8e, 0x16, 0x48, 0xa6, 0xd5, 0xfe, 0x98, 0x93, 0x60, 0x79, 0x46, 0xa3, 0x30, + 0x2f, 0xa8, 0x6c, 0xfe, 0xc4, 0x2d, 0x93, 0x46, 0xf1, 0xe6, 0x13, 0xdf, 0xe7, 0x38, 0x24, 0x0c, + 0x09, 0xd7, 0xd0, 0x9e, 0x43, 0x1b, 0x15, 0x05, 0xa7, 0xd4, 0x90, 0x65, 0xbf, 0x11, 0x33, 0xa8, + 0x28, 0x50, 0x61, 0x0c, 0x18, 0x80, 0xd7, 0xb2, 0x0f, 0xae, 0xdd, 0x06, 0x62, 0x44, 0xbd, 0x59, + 0x09, 0x3c, 0xd6, 0x33, 0x12, 0x65, 0xcd, 0x08, 0xf3, 0x7c, 0x59, 0xd6, 0x3f, 0x7d, 0x33, 0x30, + 0x67, 0xd2, 0x8a, 0xad, 0x98, 0xc4, 0x62, 0x41, 0x1a, 0x1c, 0xc1, 0x2c, 0x58, 0x1d, 0x3e, 0xd1, + 0xea, 0xb2, 0x0a, 0x18, 0xed, 0xe8, 0x72, 0xeb, 0x2c, 0x79, 0x14, 0x2e, 0x2a, 0x0c, 0xce, 0xca, + 0x93, 0x6c, 0x32, 0x5b, 0xc7, 0x61, 0x14, 0xa2, 0xb3, 0xe8, 0x3f, 0x15, 0x6b, 0x81, 0x5e, 0xa5, + 0x05, 0x18, 0x60, 0xe9, 0x84, 0xe4, 0x66, 0xb6, 0xe0, 0x91, 0xb5, 0xa9, 0x66, 0x8a, 0x69, 0xb6, + 0x25, 0xfc, 0xe0, 0x3c, 0x1b, 0x0a, 0xae, 0xea, 0x3d, 0x74, 0x07, 0x1f, 0x16, 0x48, 0x2f, 0x1c, + 0x21, 0x49, 0x03, 0x88, 0x79, 0xcd, 0x86, 0x86, 0x81, 0x03, 0x60, 0x88, 0x0f, 0xcd, 0xd1, 0xb4, + 0x82, 0x69, 0x88, 0x8b, 0x64, 0xec, 0xf1, 0xfe, 0xb2, 0x1e, 0x8b, 0x74, 0xba, 0xd3, 0x00, 0xf0, + 0xa5, 0x5b, 0x06, 0x24, 0xc3, 0xb8, 0xa3, 0xc7, 0x6c, 0x47, 0x41, 0x52, 0x03, 0x84, 0x87, 0xa2, + 0x7c, 0xe2, 0xbf, 0xe3, 0x82, 0x7f, 0x65, 0x93, 0x45, 0xe6, 0xc4, 0xda, 0x54, 0x38, 0x68, 0x2c, + 0xd1, 0xb5, 0xff, 0x7b, 0x4b, 0x06, 0x64, 0x06, 0xca, 0xad, 0xac, 0x30, 0xfd, 0x8e, 0x95, 0x32, + 0x3a, 0xa5, 0x0e, 0xc9, 0x77, 0x10, 0x2b, 0xf5, 0x23, 0xfe, 0x22, 0xb9, 0x6c, 0xeb, 0x1e, 0x62, + 0x01, 0x6b, 0xff, 0x9f, 0x22, 0x55, 0xd6, 0xa1, 0x4d, 0x64, 0x9e, 0xe1, 0x9e, 0xc6, 0x6c, 0x2f, + 0xe6, 0x6e, 0x8a, 0x35, 0x06, 0x6b, 0x9b, 0x58, 0x6c, 0x33, 0xb3, 0x8a, 0x05, 0x62, 0xcf, 0xb3, + 0x2f, 0x4b, 0x34, 0x79, 0x26, 0x66, 0x93, 0xca, 0x0d, 0x56, 0x46, 0x93, 0x67, 0x8a, 0x17, 0x5c, + 0xf4, 0x04, 0x86, 0xd9, 0x73, 0x11, 0x16, 0xe1, 0x74, 0x85, 0xbc, 0xf7, 0xf3, 0xea, 0x4e, 0x8a, + 0xc7, 0x59, 0xcd, 0x5f, 0xf0, 0xfb, 0x32, 0x9a, 0x9a, 0x95, 0xd1, 0x72, 0x9e, 0xf1, 0x9a, 0x2b, + 0x94, 0x77, 0x1a, 0xe9, 0xcb, 0x25, 0x7f, 0x2b, 0xa1, 0x5a, 0xa5, 0x1c, 0x27, 0x95, 0x45, 0xbc, + 0xd9, 0x06, 0x15, 0xc6, 0xac, 0x98, 0xb3, 0xc8, 0xf2, 0x5c, 0x50, 0x71, 0x63, 0x54, 0x9c, 0x29, + 0x8d, 0xc1, 0xd9, 0x06, 0x2b, 0x8b, 0xae, 0x42, 0xc8, 0xe2, 0x0c, 0xd7, 0xa2, 0x3c, 0x74, 0x3d, + 0x8b, 0x84, 0x9a, 0x14, 0x0d, 0xad, 0x9e, 0x94, 0x6b, 0x5e, 0x02, 0x61, 0xa2, 0xa0, 0x16, 0xd8, + 0x2a, 0x0b, 0xdc, 0x91, 0x51, 0xe4, 0x2c, 0x0b, 0x5c, 0x06, 0x89, 0x7d, 0x4e, 0xc6, 0xe6, 0xdc, + 0x89, 0x3e, 0xe0, 0x0a, 0x45, 0x98, 0xe3, 0xf5, 0x9d, 0x20, 0x77, 0x74, 0x2c, 0xed, 0x04, 0xea, + 0xef, 0x87, 0xb4, 0xec, 0xc3, 0x7a, 0x9d, 0x4d, 0x04, 0x61, 0x40, 0x13, 0x80, 0x6d, 0x47, 0x9a, + 0x70, 0xc3, 0xc3, 0xb3, 0x1d, 0x9c, 0x1c, 0x58, 0x4c, 0x71, 0x23, 0x0f, 0x55, 0x52, 0x33, 0x5c, + 0x89, 0x26, 0x61, 0xde, 0x1c, 0xb0, 0xdd, 0x07, 0xc2, 0x1c, 0xe0, 0xde, 0x32, 0xa9, 0xc6, 0xa6, + 0x45, 0x78, 0x1b, 0x90, 0xc2, 0x4a, 0x00, 0xe0, 0x64, 0x42, 0x7d, 0x9c, 0xe1, 0x92, 0x8e, 0x30, + 0xb1, 0xb0, 0x75, 0xa7, 0xe1, 0xc0, 0xda, 0x2a, 0x69, 0xc5, 0x82, 0x72, 0x94, 0x3a, 0x25, 0xa6, + 0xa1, 0x64, 0x3b, 0x1f, 0xdb, 0x4a, 0x8a, 0xbc, 0xcc, 0x90, 0x06, 0x75, 0xcc, 0x2c, 0xaf, 0x61, + 0x51, 0xa7, 0x64, 0x1a, 0xca, 0x98, 0xa0, 0x39, 0x1d, 0xcd, 0x67, 0x42, 0xe7, 0xbd, 0x03, 0xbc, + 0x2b, 0x60, 0x3f, 0x90, 0x0f, 0x8f, 0x26, 0x30, 0x7f, 0x0b, 0x7d, 0x32, 0xb2, 0xc7, 0x76, 0x3a, + 0xad, 0x63, 0x5b, 0xe5, 0xb4, 0x04, 0x1d, 0x97, 0xa3, 0xa1, 0x80, 0xfb, 0x7e, 0x0a, 0xc2, 0x40, + 0x48, 0x75, 0xe2, 0xdf, 0x4c, 0x37, 0xa6, 0x89, 0xa1, 0xfa, 0x84, 0x18, 0x75, 0xe9, 0x25, 0x27, + 0xc3, 0xdc, 0xb5, 0xc1, 0x08, 0x30, 0x09, 0x4a, 0x37, 0xaf, 0x21, 0xa5, 0x51, 0x7c, 0x38, 0x51, + 0x31, 0xe2, 0x65, 0xf4, 0xe4, 0x08, 0xb2, 0x6d, 0x3e, 0xac, 0x2c, 0xdd, 0x01, 0x7b, 0x0f, 0x72, + 0xb4, 0x00, 0x60, 0xe8, 0xc0, 0x28, 0xae, 0x64, 0x90, 0x04, 0xa7, 0x1f, 0xdc, 0xae, 0x1b, 0x61, + 0xf1, 0x43, 0x25, 0x6b, 0x51, 0xf8, 0x3e, 0x92, 0xec, 0x76, 0xa8, 0x23, 0x84, 0xae, 0x50, 0xbb, + 0x33, 0x13, 0xa2, 0x60, 0x14, 0xc5, 0x43, 0xa1, 0x89, 0xb4, 0x62, 0xa1, 0xed, 0x69, 0xf3, 0x33, + 0xd3, 0xbf, 0x5f, 0xae, 0x52, 0xab, 0x80, 0x56, 0x2e, 0x4b, 0x07, 0x69, 0x08, 0x22, 0x35, 0xc3, + 0x53, 0x3a, 0x74, 0xc6, 0xcc, 0x21, 0xd7, 0xc4, 0xa1, 0x3c, 0xcd, 0x50, 0x82, 0xee, 0xfd, 0x33, + 0xb2, 0x04, 0xe1, 0xfd, 0xa0, 0x0d, 0x33, 0x64, 0xf7, 0x32, 0x66, 0x8b, 0x95, 0x12, 0x16, 0x0a, + 0x4a, 0x3e, 0xc2, 0xb7, 0x90, 0x9e, 0x49, 0xa9, 0x4d, 0x93, 0x7a, 0xd2, 0xe6, 0x66, 0x52, 0x1d, + 0xa7, 0x16, 0xb3, 0x39, 0xc9, 0x22, 0x74, 0x96, 0x21, 0x7c, 0x2f, 0x78, 0x71, 0xcc, 0xb2, 0x4d, + 0x67, 0x59, 0x07, 0x27, 0x51, 0xf9, 0x89, 0xed, 0xe7, 0x68, 0xd2, 0x19, 0x9c, 0x9f, 0x57, 0x02, + 0x83, 0x18, 0x5d, 0xf3, 0xb6, 0x2c, 0x61, 0xd9, 0x1a, 0x5b, 0x27, 0x07, 0xd3, 0x03, 0xdf, 0x31, + 0xb5, 0x41, 0xf8, 0x90, 0x37, 0x0b, 0xb1, 0x30, 0xc3, 0xda, 0x37, 0xcf, 0x76, 0x2b, 0x9b, 0xdc, + 0x2c, 0x53, 0x33, 0x2a, 0x1c, 0xb4, 0x82, 0x29, 0x45, 0xaa, 0x66, 0x44, 0xf6, 0x01, 0xcf, 0x46, + 0xf0, 0xa4, 0x5c, 0x11, 0xe4, 0x04, 0x97, 0x8b, 0xd5, 0xfd, 0x23, 0x8a, 0xca, 0xeb, 0x83, 0xba, + 0xe8, 0x3e, 0x67, 0x70, 0x63, 0x5d, 0x42, 0x78, 0x23, 0x77, 0x09, 0xa5, 0x90, 0x90, 0x35, 0xf9, + 0x58, 0x1b, 0xcd, 0x77, 0x5a, 0xf9, 0x3b, 0xc5, 0xe4, 0x87, 0x84, 0xe4, 0xc8, 0xca, 0x8b, 0x88, + 0x6d, 0x3d, 0x5e, 0x40, 0x4a, 0x22, 0x39, 0x26, 0x2e, 0xe8, 0x65, 0xfc, 0xbc, 0xca, 0x75, 0x89, + 0x4a, 0xcd, 0xac, 0xe0, 0xad, 0xa4, 0xe2, 0x23, 0x86, 0xf1, 0xba, 0xe8, 0xa4, 0xee, 0xea, 0x7d, + 0xc2, 0x23, 0x94, 0x7f, 0x46, 0x84, 0x2e, 0x8e, 0x12, 0x5d, 0x5c, 0xaf, 0x33, 0x91, 0xb9, 0x38, + 0xc2, 0xa8, 0x70, 0x66, 0x5a, 0xc2, 0xe7, 0x30, 0x21, 0x78, 0x16, 0xb2, 0x32, 0x35, 0xaf, 0x51, + 0x15, 0x10, 0xbe, 0xd9, 0x8c, 0x40, 0x64, 0x49, 0x83, 0x7e, 0x0f, 0xbc, 0x0b, 0xd3, 0x8f, 0xd8, + 0x83, 0x45, 0x8d, 0x33, 0x2b, 0xf2, 0x0c, 0x6a, 0x16, 0xf5, 0xe6, 0xd4, 0x5e, 0xce, 0x37, 0x51, + 0xa5, 0x3b, 0x3c, 0x0f, 0xae, 0x8e, 0xc4, 0x6e, 0xb2, 0x50, 0xc2, 0xb9, 0x2d, 0x5c, 0x8d, 0xc0, + 0x19, 0x6b, 0x46, 0x64, 0x9c, 0x62, 0x30, 0x33, 0x31, 0x5d, 0x99, 0xeb, 0x85, 0x32, 0x9e, 0x7d, + 0xdf, 0xb8, 0xd7, 0x9f, 0x01, 0xe8, 0x92, 0xd4, 0x8d, 0x35, 0x2b, 0x9b, 0x1a, 0x84, 0xfe, 0x63, + 0x2c, 0x70, 0xb2, 0xd0, 0x91, 0x17, 0x2d, 0x68, 0xad, 0x74, 0x3f, 0x49, 0x31, 0x28, 0xe4, 0x8d, + 0xd0, 0x28, 0xa3, 0x38, 0x0e, 0xf2, 0xa0, 0x05, 0x97, 0xed, 0xde, 0xa8, 0x94, 0x7b, 0x66, 0x89, + 0xa9, 0xe6, 0x3e, 0x9b, 0x30, 0x03, 0x47, 0xb9, 0x35, 0x8b, 0x82, 0xbb, 0x80, 0x05, 0xed, 0x68, + 0xcd, 0x2d, 0x4b, 0xd0, 0x2c, 0xf6, 0x13, 0x62, 0x7c, 0x9c, 0x88, 0x79, 0xfa, 0xf4, 0xce, 0x70, + 0xd9, 0x80, 0x81, 0x8a, 0xf9, 0x77, 0x2a, 0x24, 0xb6, 0x11, 0xf4, 0xe1, 0x0e, 0xde, 0x55, 0xc1, + 0x17, 0xfd, 0x6b, 0xea, 0x95, 0xe6, 0x3d, 0x22, 0x20, 0x3f, 0x9f, 0xdf, 0x98, 0x07, 0x01, 0x04, + 0x40, 0xce, 0xb2, 0x64, 0x5a, 0x01, 0x07, 0x4a, 0x59, 0x98, 0x0f, 0xfa, 0x85, 0x0e, 0xa1, 0x10, + 0x6b, 0x09, 0xf9, 0x7c, 0x17, 0xdf, 0x96, 0x49, 0x57, 0x8c, 0xe8, 0x8e, 0x4c, 0xea, 0x7d, 0xdb, + 0xa1, 0xef, 0x98, 0xcb, 0xcc, 0x10, 0xc1, 0x2a, 0x8b, 0xd2, 0x4a, 0xcf, 0x0a, 0x60, 0x46, 0xb9, + 0x78, 0xb2, 0xec, 0x78, 0x7d, 0xef, 0x10, 0xae, 0x7e, 0xa9, 0x38, 0xe8, 0x57, 0x7c, 0x66, 0x13, + 0xf7, 0x67, 0xf4, 0x67, 0x66, 0x30, 0xb1, 0xdd, 0x9e, 0xde, 0xc7, 0xb5, 0x1f, 0x18, 0x2f, 0x3d, + 0x3d, 0x46, 0xc0, 0x55, 0x3a, 0x23, 0xc8, 0x56, 0xbf, 0x33, 0xcb, 0xcc, 0xd9, 0xe5, 0xe2, 0xd0, + 0x74, 0xc3, 0x5a, 0x48, 0x02, 0x7b, 0x1c, 0x6b, 0xc3, 0x49, 0x2d, 0x9c, 0x8f, 0x46, 0x24, 0x0c, + 0x57, 0x6b, 0xf3, 0x89, 0x3f, 0xb5, 0x47, 0xe6, 0xb8, 0xa3, 0x53, 0x20, 0xdb, 0x1d, 0x7b, 0x25, + 0x10, 0xcd, 0xc6, 0x4e, 0x77, 0xdc, 0xa2, 0x10, 0x0b, 0x33, 0x70, 0x4b, 0x20, 0xc6, 0xe3, 0x51, + 0x43, 0xdf, 0xa2, 0x10, 0x74, 0x51, 0xab, 0x14, 0xa4, 0xd3, 0xec, 0x34, 0xe3, 0x64, 0x46, 0xa3, + 0x04, 0xa4, 0xd5, 0x6a, 0xc5, 0x7c, 0xb2, 0xa9, 0x34, 0xb7, 0x1d, 0x6b, 0x56, 0x6d, 0x08, 0xe3, + 0xee, 0x6a, 0xc5, 0x19, 0xd2, 0xa3, 0x6f, 0x98, 0x8c, 0x81, 0x66, 0x92, 0x8a, 0x2f, 0x98, 0xe8, + 0x02, 0xbf, 0x92, 0x44, 0x7c, 0x89, 0xb5, 0x4c, 0x20, 0xbb, 0xa2, 0xcf, 0x2c, 0xa8, 0x02, 0x96, + 0xf7, 0x58, 0x2a, 0x07, 0x61, 0x4b, 0x06, 0xab, 0xe4, 0xb9, 0xd7, 0xe0, 0x19, 0x22, 0x98, 0x5d, + 0x65, 0xde, 0x80, 0x35, 0xb9, 0xcc, 0x46, 0x2e, 0x13, 0x4a, 0x16, 0x82, 0xe5, 0x95, 0x78, 0xef, + 0xb1, 0xf7, 0x0c, 0x00, 0x8b, 0x52, 0x57, 0xe9, 0x7b, 0x0f, 0xdf, 0x63, 0x6d, 0x81, 0x41, 0xf7, + 0x8a, 0xce, 0xc4, 0x52, 0xf1, 0x88, 0x35, 0x1a, 0x86, 0x67, 0x25, 0x26, 0x06, 0x33, 0x08, 0x78, + 0x09, 0xb9, 0xa1, 0xaf, 0x4d, 0xf1, 0x8a, 0xbb, 0x6c, 0xb4, 0xd9, 0x32, 0x49, 0xa8, 0x81, 0x43, + 0x88, 0x89, 0x5c, 0xcc, 0x6a, 0x6c, 0x3a, 0x94, 0x83, 0x05, 0x0c, 0x09, 0x9e, 0x45, 0xa7, 0x0d, + 0x39, 0x1a, 0x3e, 0x56, 0x29, 0x04, 0x92, 0x02, 0xa3, 0x71, 0x4c, 0x52, 0x1a, 0x4d, 0x9e, 0xd4, + 0x4e, 0x93, 0xba, 0x34, 0x69, 0x99, 0x42, 0xd1, 0xa6, 0x11, 0x52, 0x48, 0xb6, 0x68, 0x9c, 0x95, + 0xce, 0xcc, 0xa8, 0xae, 0xe8, 0x33, 0x9d, 0x3f, 0xee, 0xb1, 0x14, 0x9e, 0x2d, 0x4c, 0x73, 0x91, + 0x90, 0x7d, 0x9a, 0x9b, 0x24, 0x12, 0xc7, 0xb1, 0xfd, 0xd0, 0x0e, 0xfb, 0x8b, 0x29, 0x58, 0xfb, + 0x1a, 0x5d, 0xbc, 0x03, 0x39, 0x58, 0x04, 0xa6, 0x1f, 0x6b, 0xd9, 0x69, 0xe9, 0x15, 0x7b, 0x41, + 0x97, 0x20, 0x4c, 0x5a, 0xca, 0x2d, 0x36, 0xe6, 0x20, 0x78, 0x5a, 0xac, 0x89, 0xd9, 0xec, 0x21, + 0x89, 0x16, 0xb8, 0x25, 0x2b, 0x99, 0xdd, 0x66, 0xd3, 0x31, 0x3d, 0xda, 0xa2, 0xc8, 0x4d, 0xc1, + 0x79, 0xa3, 0x45, 0x68, 0xd1, 0x70, 0xea, 0x94, 0xac, 0x70, 0x9f, 0x07, 0x08, 0xbf, 0x0f, 0xce, + 0x43, 0x21, 0xab, 0x37, 0xc5, 0x6e, 0xae, 0x8f, 0x93, 0x60, 0x32, 0x34, 0xe9, 0x36, 0x32, 0xf1, + 0x5f, 0x6b, 0x2a, 0xb1, 0x86, 0x87, 0xf0, 0x93, 0x91, 0x60, 0xbb, 0xb8, 0x5f, 0x8c, 0x8d, 0xa4, + 0x3e, 0x13, 0xa9, 0x16, 0xb2, 0x83, 0xcb, 0x12, 0x7d, 0xce, 0xd4, 0x1b, 0x10, 0x1f, 0xf4, 0x1c, + 0xd0, 0x8d, 0x3f, 0x65, 0xf3, 0x7c, 0x2f, 0xb4, 0xd9, 0xe0, 0xe1, 0xb8, 0x63, 0x43, 0x35, 0xf4, + 0xaf, 0xb2, 0x98, 0xd1, 0x03, 0xff, 0x99, 0xbd, 0x2f, 0xec, 0x02, 0x80, 0xf0, 0x7a, 0x52, 0xbd, + 0x99, 0x39, 0x7d, 0x71, 0xf9, 0xc1, 0xc5, 0xf9, 0x8b, 0xda, 0xb6, 0xba, 0x0b, 0xc9, 0x12, 0x24, + 0xbb, 0xb8, 0x34, 0x12, 0x45, 0x7e, 0xaf, 0x5e, 0x5f, 0x2c, 0x16, 0xda, 0xa2, 0xa5, 0x79, 0xc1, + 0xa4, 0xde, 0x04, 0x8d, 0x87, 0x05, 0x65, 0xb6, 0x28, 0x61, 0xc8, 0x2d, 0x5d, 0xe6, 0xd3, 0xf6, + 0xec, 0x99, 0x9d, 0xec, 0xba, 0x31, 0x64, 0x5d, 0xd2, 0xa5, 0x16, 0xfe, 0x93, 0xf7, 0x76, 0x7d, + 0x33, 0x9a, 0x4a, 0x38, 0x3f, 0xd4, 0x91, 0xb6, 0xb4, 0xce, 0xb4, 0xa9, 0xc3, 0x43, 0x83, 0x7f, + 0x37, 0x9b, 0x34, 0x05, 0x17, 0x5c, 0x02, 0xef, 0x0a, 0xd7, 0xff, 0x50, 0x56, 0xc4, 0x6b, 0x8d, + 0x37, 0xd3, 0x4e, 0x12, 0x90, 0x74, 0x23, 0xd3, 0x37, 0x64, 0xda, 0x35, 0xb9, 0x8e, 0xf3, 0xf8, + 0xd7, 0x93, 0xbd, 0x4d, 0x25, 0xa3, 0xda, 0xc4, 0x02, 0x55, 0x0b, 0x08, 0x99, 0xd9, 0x25, 0xb6, + 0x2d, 0x5e, 0x17, 0x2c, 0x7f, 0x4b, 0xd7, 0xe3, 0xb2, 0x19, 0x5e, 0x4d, 0x38, 0xa2, 0xab, 0xa1, + 0x87, 0x5a, 0xc4, 0xb4, 0x40, 0x96, 0x6d, 0x17, 0x2d, 0xb7, 0x2e, 0xd5, 0x3a, 0xfe, 0x0d, 0x7c, + 0xfd, 0xd4, 0xdd, 0x1e, 0xc7, 0x99, 0x19, 0x4f, 0xa1, 0x1a, 0x3a, 0x60, 0x38, 0xa0, 0x42, 0xf1, + 0xa6, 0xd3, 0x11, 0x7e, 0xc3, 0xdf, 0x81, 0x7a, 0xc8, 0xda, 0x62, 0xa5, 0xb5, 0x06, 0xad, 0x52, + 0xc7, 0xfd, 0x9b, 0xe3, 0x76, 0x5c, 0x3e, 0x8f, 0x9a, 0x41, 0x6a, 0x4d, 0x35, 0x03, 0x2e, 0xed, + 0x92, 0x6a, 0x3b, 0xa2, 0x5a, 0x8a, 0x2b, 0x9d, 0xa7, 0x9c, 0x36, 0xd8, 0xd1, 0xec, 0x44, 0x4b, + 0xf5, 0xef, 0xac, 0x8d, 0x6e, 0xdc, 0x13, 0x9a, 0x01, 0x6a, 0x0a, 0x3d, 0x07, 0xfc, 0x26, 0x8a, + 0x62, 0x3f, 0xa7, 0x6f, 0xd6, 0xf7, 0x40, 0xfd, 0x4b, 0x9d, 0x35, 0xa0, 0xf1, 0x12, 0x3f, 0x8e, + 0x7b, 0xf4, 0xde, 0xd0, 0x55, 0xfe, 0x7c, 0x4a, 0x4c, 0xeb, 0xbd, 0xeb, 0x2c, 0x8d, 0x46, 0x9a, + 0x12, 0xe2, 0xe9, 0x66, 0xcb, 0x68, 0x8a, 0x94, 0x33, 0xdf, 0x36, 0x5a, 0xe2, 0xe5, 0xc8, 0xbd, + 0x06, 0x25, 0x65, 0x19, 0xc9, 0x11, 0xa6, 0x3e, 0xdf, 0xc6, 0xc3, 0x1a, 0x5d, 0x51, 0x5f, 0x0a, + 0x8f, 0x0a, 0x67, 0xb6, 0xf2, 0x10, 0xd5, 0x54, 0x56, 0x66, 0x1a, 0x7d, 0x18, 0x97, 0xe9, 0x62, + 0xa5, 0xf6, 0xf3, 0x8a, 0xb0, 0xf8, 0x86, 0xc7, 0x33, 0x6a, 0x89, 0x83, 0x16, 0x91, 0x30, 0xaa, + 0xc8, 0xf8, 0x29, 0x2b, 0x2a, 0xd1, 0xdc, 0xf5, 0x13, 0xd4, 0xe6, 0x43, 0x27, 0xa8, 0xcd, 0xc2, + 0x09, 0x6a, 0x93, 0x9e, 0xa0, 0xd6, 0x5c, 0x65, 0x55, 0x38, 0x2b, 0x66, 0x2a, 0x99, 0x13, 0xe1, + 0x4d, 0xb6, 0x47, 0x7b, 0xa6, 0xe1, 0xf1, 0x1f, 0xdb, 0x52, 0x94, 0x38, 0xff, 0x9e, 0x3f, 0x52, + 0xef, 0x07, 0x64, 0x4f, 0xae, 0x16, 0x8f, 0xcf, 0xa9, 0xf4, 0xd0, 0x66, 0x53, 0xa9, 0xca, 0xbb, + 0x75, 0x0a, 0x11, 0x17, 0x3d, 0x37, 0xdc, 0xa8, 0x1e, 0xd3, 0x3e, 0xe2, 0x43, 0x7a, 0xea, 0x11, + 0xde, 0x88, 0xc6, 0xe6, 0x0e, 0xf8, 0xa9, 0x4d, 0x3c, 0x62, 0x84, 0x09, 0xcf, 0x92, 0x4b, 0x07, + 0x7a, 0xc9, 0x39, 0xce, 0x24, 0x4f, 0xbe, 0x80, 0x14, 0xb9, 0x27, 0x9f, 0x2d, 0x43, 0x18, 0x52, + 0x72, 0x72, 0x47, 0x00, 0x38, 0xc9, 0xfe, 0x3c, 0x9c, 0xe2, 0x39, 0xda, 0x92, 0xa8, 0x36, 0x09, + 0xc5, 0xf8, 0x69, 0xff, 0x94, 0x08, 0xec, 0xbd, 0x88, 0xb4, 0x12, 0x2f, 0x4c, 0xe7, 0xea, 0x7c, + 0x0a, 0xa3, 0x6a, 0xc2, 0x0e, 0xc7, 0x23, 0x1b, 0xc4, 0x79, 0x22, 0x4e, 0x65, 0x9b, 0x2e, 0x7c, + 0x3f, 0x33, 0x35, 0xb7, 0x97, 0x62, 0x21, 0x0e, 0xe9, 0x91, 0x8a, 0xa9, 0xda, 0xfc, 0x50, 0xb4, + 0x38, 0x17, 0x85, 0x6f, 0xb6, 0xe6, 0xe2, 0xe1, 0x3a, 0x16, 0x58, 0x97, 0x34, 0x62, 0x2b, 0x6a, + 0xa4, 0x24, 0x25, 0xe2, 0x38, 0x7f, 0xbe, 0x7b, 0x55, 0x5e, 0xac, 0x20, 0x2c, 0x78, 0x22, 0xb8, + 0x8c, 0xf5, 0x85, 0xb3, 0xe2, 0x31, 0x1e, 0xa2, 0xe2, 0x47, 0x0d, 0xb3, 0x42, 0xf6, 0x50, 0x1b, + 0x36, 0x1e, 0xa9, 0xa3, 0xc7, 0x6e, 0x7d, 0x3c, 0x16, 0x8b, 0x87, 0x83, 0xe9, 0xf9, 0x58, 0x33, + 0x45, 0x9b, 0xd7, 0x7c, 0x62, 0x62, 0x44, 0xf1, 0xa3, 0xf5, 0xdb, 0x4f, 0x9f, 0xda, 0x5a, 0x79, + 0x0b, 0x36, 0xb6, 0x50, 0x38, 0x85, 0x6c, 0x32, 0xd2, 0xdb, 0x7d, 0x9b, 0x9f, 0xfe, 0x0f, 0x9b, + 0x20, 0x36, 0x25, 0x27, 0xd0, 0xe9, 0xa9, 0xe6, 0x67, 0x32, 0x28, 0x18, 0xdf, 0x21, 0x20, 0x4a, + 0x0c, 0xb8, 0x75, 0x2f, 0x30, 0x3d, 0xc7, 0xd2, 0x93, 0x27, 0x01, 0x9e, 0xbf, 0xe1, 0x07, 0xf6, + 0x68, 0xcc, 0x7a, 0xc0, 0xf6, 0x36, 0x54, 0xe4, 0x26, 0x1e, 0x0e, 0x73, 0x8c, 0x7b, 0x4e, 0xbc, + 0xef, 0x1a, 0x6d, 0xfd, 0x59, 0xb3, 0xd7, 0x56, 0x83, 0xfb, 0xa0, 0xea, 0x8e, 0xea, 0xb2, 0x03, + 0xf1, 0x60, 0x85, 0x60, 0x9c, 0x53, 0xbb, 0x03, 0x89, 0x44, 0x63, 0x36, 0xb1, 0x5e, 0x09, 0xaa, + 0x4d, 0x05, 0xcf, 0x8c, 0x36, 0xf4, 0x5f, 0x5c, 0xd5, 0x32, 0x02, 0xf8, 0xf4, 0x58, 0x09, 0x70, + 0xd9, 0x40, 0x36, 0x45, 0xa1, 0x5a, 0xa8, 0xd4, 0x9b, 0x8a, 0x3a, 0xc5, 0x4b, 0x40, 0xf0, 0x64, + 0x07, 0x31, 0x83, 0x53, 0x3c, 0x8b, 0xa7, 0xab, 0xba, 0xca, 0x41, 0x92, 0x5a, 0x01, 0x4c, 0xbb, + 0x31, 0x3c, 0xf8, 0x5c, 0x1a, 0xae, 0x1a, 0x69, 0x43, 0x02, 0xb6, 0xe5, 0x04, 0xea, 0xc4, 0x7b, + 0x30, 0x70, 0x3e, 0x0c, 0xe2, 0x74, 0xdc, 0x4d, 0x61, 0xf3, 0x37, 0x5a, 0x11, 0x14, 0xc1, 0x02, + 0x6a, 0xa8, 0x5a, 0x79, 0x28, 0x7a, 0x4a, 0x08, 0x0f, 0xfd, 0xc8, 0x6a, 0xd3, 0x30, 0x9c, 0x67, + 0xf9, 0x32, 0xd5, 0x86, 0xd6, 0x01, 0x9c, 0x75, 0x75, 0x0b, 0x3e, 0x5b, 0xbf, 0xb8, 0x4a, 0xaf, + 0x90, 0xdf, 0xe4, 0xf9, 0x1d, 0x9e, 0x9f, 0xaf, 0x1b, 0x37, 0xef, 0xdf, 0x57, 0x2f, 0x60, 0x54, + 0x85, 0x52, 0xb4, 0xf6, 0xad, 0x3b, 0x6b, 0x17, 0x50, 0x1d, 0xf6, 0x5f, 0x59, 0xef, 0x33, 0xb0, + 0xc8, 0xa0, 0x35, 0x56, 0x65, 0xb4, 0x9d, 0x18, 0x07, 0xca, 0x79, 0x4c, 0x86, 0x0e, 0x58, 0x5e, + 0x4c, 0x43, 0x09, 0x18, 0xa0, 0x77, 0x6b, 0xc8, 0x7c, 0x57, 0x06, 0x07, 0xc4, 0x35, 0xfe, 0xca, + 0x5d, 0x52, 0x85, 0x24, 0xaf, 0x0a, 0x5c, 0xba, 0x88, 0x03, 0x76, 0x0a, 0xb5, 0x43, 0x69, 0x23, + 0xb9, 0x4e, 0x74, 0x79, 0xb1, 0x46, 0x13, 0x1e, 0x9a, 0xbc, 0x0f, 0x6b, 0x84, 0x22, 0xcb, 0xb5, + 0x82, 0x2d, 0xda, 0x7b, 0x70, 0x4d, 0x90, 0xb2, 0x94, 0xba, 0x54, 0x9a, 0x47, 0x86, 0x5e, 0xb8, + 0xff, 0xc2, 0xa1, 0xd7, 0x5d, 0x24, 0xba, 0x0e, 0xd2, 0xec, 0xdd, 0xa0, 0x6f, 0x43, 0x1a, 0x1d, + 0x66, 0x01, 0x9a, 0xc1, 0x70, 0x61, 0xe3, 0xa9, 0xc7, 0x92, 0x0e, 0x26, 0x97, 0x63, 0x8c, 0xbe, + 0x2a, 0xab, 0x11, 0x6e, 0xc0, 0xd0, 0x7b, 0x50, 0x64, 0x6b, 0x5b, 0x6d, 0x6c, 0xb5, 0xd4, 0x8e, + 0xfe, 0xb5, 0x4f, 0x37, 0x86, 0xf5, 0x69, 0x56, 0x03, 0xb3, 0x9a, 0x0d, 0xc8, 0x6b, 0xed, 0xa8, + 0xed, 0x9d, 0x5c, 0x5e, 0x13, 0xf3, 0x1a, 0x9d, 0x2e, 0x94, 0x51, 0x9b, 0xed, 0xae, 0xc8, 0xb3, + 0x98, 0xb6, 0xa6, 0x99, 0x3b, 0x4d, 0xb5, 0xbd, 0xad, 0xb6, 0xb6, 0xbf, 0xc6, 0xd9, 0xee, 0x5f, + 0x52, 0x37, 0xfe, 0xe7, 0x55, 0xf0, 0x45, 0xff, 0x1a, 0xab, 0xf8, 0xdd, 0xe0, 0xdf, 0x4d, 0xfa, + 0x6d, 0x7e, 0x19, 0x55, 0x3b, 0x5f, 0x63, 0xe5, 0x92, 0xca, 0x7c, 0xc5, 0xae, 0x6a, 0x1d, 0x05, + 0x78, 0x5d, 0x14, 0x7e, 0x1c, 0x16, 0x3a, 0x55, 0x41, 0xc8, 0x9c, 0x3f, 0xff, 0x24, 0xbb, 0x46, + 0xe3, 0xe9, 0xd3, 0x36, 0x4a, 0x5f, 0x85, 0xf0, 0x32, 0x5e, 0xaf, 0x99, 0x7f, 0xaf, 0x6e, 0xff, + 0xe2, 0xf6, 0x32, 0xaf, 0xc8, 0xad, 0x48, 0x33, 0x83, 0x51, 0x32, 0x64, 0xb4, 0x36, 0x95, 0xf0, + 0x26, 0xbb, 0xeb, 0xe2, 0xe4, 0x48, 0xb0, 0xae, 0x72, 0x87, 0x20, 0xfe, 0x2d, 0x72, 0xa8, 0xf2, + 0xd6, 0xab, 0x6e, 0xbd, 0x0d, 0x66, 0xb2, 0x5a, 0x8d, 0xe3, 0xf4, 0x14, 0x6d, 0xc1, 0x5c, 0xe0, + 0xf9, 0x55, 0xc6, 0x5d, 0x66, 0x78, 0x19, 0x17, 0xe9, 0xfe, 0x5b, 0xb9, 0xc7, 0xb5, 0x30, 0xbd, + 0x42, 0x07, 0x12, 0x40, 0xc1, 0xdb, 0x18, 0x50, 0xe1, 0x69, 0x7a, 0x0a, 0xe5, 0xce, 0x67, 0x43, + 0xb4, 0xd2, 0x19, 0xb8, 0x63, 0x9a, 0xb4, 0x06, 0x99, 0xdc, 0x73, 0x93, 0x85, 0x3d, 0xe0, 0x89, + 0x6b, 0xd0, 0x01, 0xee, 0x8c, 0xcf, 0x81, 0x9e, 0x62, 0xca, 0x1a, 0x1c, 0x3f, 0xb4, 0x97, 0x05, + 0xdc, 0xa7, 0x49, 0x6b, 0x90, 0xfc, 0x68, 0x5a, 0x16, 0x92, 0xed, 0x88, 0x58, 0x83, 0xf4, 0x03, + 0x6f, 0x82, 0x67, 0x19, 0x72, 0xb0, 0x27, 0x3c, 0x71, 0xbd, 0x5f, 0x26, 0xb8, 0x92, 0x79, 0xd8, + 0x03, 0x9a, 0xb4, 0x0e, 0x09, 0x2a, 0xdb, 0x6a, 0x3d, 0xcf, 0x83, 0xb2, 0xb4, 0x35, 0x58, 0x1a, + 0xb6, 0xe6, 0xc9, 0x8f, 0x29, 0x59, 0xb8, 0x64, 0x60, 0xa4, 0x30, 0x99, 0xec, 0x38, 0x66, 0x0e, + 0xad, 0x48, 0xa2, 0x47, 0x08, 0xa3, 0x60, 0x4e, 0xb7, 0x29, 0x11, 0xee, 0x5e, 0x5c, 0xf3, 0x4c, + 0x83, 0x3b, 0x4b, 0xb8, 0xb4, 0x4e, 0x2f, 0x05, 0xa1, 0x6f, 0x60, 0xf3, 0x6d, 0xab, 0x82, 0xe6, + 0x97, 0x3e, 0x90, 0xd4, 0x59, 0x4e, 0x4f, 0xc5, 0x1b, 0x69, 0xe2, 0xb3, 0x5c, 0x95, 0x58, 0xba, + 0x2a, 0x83, 0x83, 0x99, 0x4f, 0xb5, 0xad, 0xde, 0xe3, 0xc0, 0xaa, 0xf2, 0x4f, 0xe0, 0x9c, 0xc6, + 0xcc, 0x7d, 0x3b, 0x06, 0xbc, 0x9a, 0xd4, 0x2f, 0xcb, 0xa0, 0x20, 0x5c, 0x80, 0x7c, 0xc9, 0xc0, + 0x7b, 0x76, 0xc9, 0x36, 0x90, 0xb1, 0xe5, 0x87, 0x4c, 0x4f, 0x4c, 0x25, 0x4e, 0x56, 0x35, 0x7e, + 0xce, 0x13, 0x40, 0x4b, 0x97, 0xb4, 0x72, 0xc9, 0xf4, 0x18, 0x63, 0xcc, 0x77, 0x9f, 0x5d, 0xf6, + 0x2e, 0x33, 0xf7, 0x3a, 0xad, 0x57, 0x9d, 0x2c, 0x8f, 0x95, 0xd4, 0x7c, 0x7f, 0xbb, 0xe2, 0xcc, + 0x69, 0x79, 0xf3, 0xe9, 0x01, 0xd1, 0x4b, 0x35, 0x77, 0xcd, 0x94, 0x1d, 0x67, 0x5d, 0xfc, 0x02, + 0x79, 0x48, 0xfe, 0xd0, 0x35, 0x8b, 0x54, 0x24, 0x43, 0x5a, 0x43, 0xfc, 0x77, 0x2b, 0x09, 0x5a, + 0xfa, 0xcc, 0x00, 0x14, 0x24, 0xc0, 0x04, 0x9f, 0xff, 0x77, 0x7e, 0xef, 0x8f, 0x7c, 0xfe, 0x1c, + 0x4f, 0x7d, 0x52, 0x49, 0x41, 0xcf, 0x1d, 0x6c, 0x98, 0x9d, 0x6f, 0x88, 0x9d, 0xe6, 0xfe, 0x79, + 0x25, 0x2e, 0x45, 0x28, 0x32, 0x56, 0x89, 0xc5, 0x89, 0xef, 0x4b, 0x25, 0xeb, 0xa2, 0x33, 0x1e, + 0xdb, 0xe0, 0xdc, 0xa9, 0x25, 0x44, 0x80, 0x76, 0x72, 0x67, 0x60, 0xb1, 0x76, 0x46, 0x35, 0x1e, + 0x18, 0x08, 0x54, 0xcb, 0x0a, 0x2b, 0x40, 0x99, 0xa2, 0x9c, 0xf2, 0x7b, 0x31, 0x68, 0x10, 0xd0, + 0xac, 0x94, 0x15, 0xea, 0x3d, 0x0e, 0xee, 0x8b, 0xf9, 0x15, 0x70, 0x2e, 0xb6, 0x0b, 0xae, 0x3f, + 0x1f, 0xc3, 0x4f, 0x8c, 0x75, 0x8e, 0x83, 0xd3, 0x5b, 0xc6, 0x9d, 0x75, 0xa1, 0xfa, 0x3d, 0xdd, + 0x9b, 0xe3, 0x02, 0x4c, 0xca, 0xa8, 0xc4, 0x82, 0x27, 0xf7, 0xd8, 0xa4, 0x4d, 0xaf, 0x05, 0x04, + 0x64, 0x3d, 0x16, 0x2c, 0xb2, 0xd7, 0x05, 0x97, 0x16, 0xda, 0xc3, 0x8b, 0x76, 0xb2, 0xb4, 0x12, + 0xe7, 0x81, 0xc1, 0xaf, 0xc4, 0x1b, 0xaa, 0x2e, 0x8e, 0x8c, 0x2f, 0x59, 0xd5, 0xf0, 0x35, 0x1b, + 0x81, 0xe5, 0xef, 0x72, 0x49, 0x2e, 0x57, 0xe1, 0x94, 0x2b, 0x1b, 0xbc, 0xeb, 0x82, 0x06, 0x32, + 0x86, 0x57, 0x43, 0x9c, 0x9d, 0x0c, 0x8e, 0xc1, 0x49, 0xb7, 0x13, 0x31, 0x7b, 0xc6, 0x2e, 0x8e, + 0xc8, 0x50, 0x2d, 0x2f, 0x78, 0x06, 0xb0, 0x4b, 0x80, 0x08, 0x79, 0xb1, 0x93, 0x43, 0xc8, 0x8a, + 0xc0, 0xe5, 0x80, 0x9d, 0x4e, 0x6c, 0xf2, 0x9b, 0x3a, 0x08, 0xc3, 0xc3, 0x34, 0x12, 0xe5, 0x87, + 0x57, 0x16, 0x01, 0x00, 0xca, 0x62, 0x61, 0x67, 0xa7, 0xcc, 0x4f, 0x36, 0xc2, 0x30, 0x30, 0xff, + 0xfc, 0x13, 0x88, 0x34, 0x3a, 0xcc, 0xa4, 0xa9, 0xa5, 0x35, 0x64, 0xef, 0x18, 0x41, 0x11, 0x31, + 0xd3, 0xed, 0xa0, 0x06, 0xc9, 0xdd, 0x3e, 0x23, 0x30, 0x4a, 0xaa, 0x11, 0x98, 0x15, 0x38, 0x59, + 0x32, 0xa9, 0x90, 0x8f, 0xbe, 0xd6, 0x94, 0xab, 0xba, 0x36, 0xfe, 0xe8, 0x38, 0x86, 0x61, 0x84, + 0x63, 0xf0, 0x7b, 0x08, 0x40, 0x0b, 0x60, 0xf7, 0x9f, 0xe5, 0xfa, 0xc1, 0x2a, 0xea, 0x95, 0xd6, + 0x90, 0x9d, 0x2a, 0x11, 0x7a, 0x81, 0x17, 0x48, 0xb5, 0x40, 0xf5, 0xfe, 0xa2, 0x28, 0x92, 0x8c, + 0xb5, 0x62, 0x60, 0xd6, 0xeb, 0x4f, 0x0c, 0x49, 0xc7, 0xa5, 0x26, 0x7e, 0x2f, 0x90, 0xa4, 0x6f, + 0x00, 0x50, 0xe1, 0xba, 0x11, 0x0e, 0x8c, 0x33, 0x36, 0x05, 0x49, 0xe4, 0x39, 0xe9, 0x1c, 0x0a, + 0x78, 0xbc, 0xe6, 0x2e, 0x4f, 0x16, 0x37, 0xb1, 0x98, 0x78, 0x03, 0xdc, 0xba, 0x02, 0xc8, 0x0d, + 0x7a, 0x76, 0x99, 0xd3, 0xdd, 0x50, 0x78, 0x49, 0x1e, 0x17, 0x91, 0xa2, 0xfe, 0xe2, 0xf0, 0x12, + 0xcf, 0xc6, 0xe3, 0x22, 0x39, 0x45, 0x86, 0xf3, 0x43, 0x3c, 0x4f, 0x51, 0x13, 0x4d, 0x62, 0xe6, + 0xd5, 0x08, 0xbf, 0xab, 0x6b, 0x4d, 0xb8, 0x93, 0x92, 0x58, 0x0b, 0x1e, 0x2a, 0xcc, 0x03, 0xe2, + 0x75, 0x27, 0x15, 0x96, 0xa1, 0xa4, 0xd3, 0x0e, 0x14, 0xf5, 0x8a, 0xb0, 0xec, 0xb2, 0x5c, 0xcd, + 0x5d, 0xd5, 0xd6, 0x29, 0x5c, 0xd5, 0x96, 0x9f, 0xad, 0x00, 0xd3, 0x25, 0x0b, 0x51, 0x92, 0x65, + 0xd5, 0xc6, 0x1b, 0x6e, 0x84, 0x34, 0x17, 0xea, 0x07, 0x7e, 0x18, 0x49, 0x7f, 0xfe, 0x0e, 0x71, + 0x66, 0x93, 0x45, 0x97, 0x60, 0x70, 0x62, 0x49, 0x66, 0x16, 0xa1, 0xc7, 0xd5, 0x68, 0xa1, 0xe9, + 0x18, 0x0c, 0x78, 0x0e, 0xec, 0xcb, 0x1d, 0x70, 0xaa, 0xf4, 0xbd, 0x19, 0x5f, 0x2f, 0xb1, 0xd3, + 0xaa, 0x1c, 0x13, 0x7a, 0x6d, 0x18, 0x50, 0xcf, 0xae, 0x12, 0x96, 0x24, 0x2e, 0x31, 0xe4, 0x4d, + 0x0b, 0x95, 0xd1, 0x93, 0xd6, 0xac, 0x3d, 0x3a, 0x3d, 0x92, 0xa0, 0x3b, 0x27, 0xb4, 0x16, 0x79, + 0x67, 0x74, 0x0e, 0xae, 0xd2, 0xea, 0x2a, 0x5a, 0x88, 0x73, 0xa7, 0x95, 0x26, 0x38, 0x1b, 0x97, + 0xfd, 0x9c, 0xe6, 0x4d, 0xaf, 0xb1, 0xca, 0x5c, 0xbc, 0x76, 0xb9, 0xca, 0xdb, 0x13, 0x28, 0xd6, + 0x5b, 0x41, 0x38, 0x14, 0x43, 0x2f, 0x08, 0x7e, 0x44, 0x10, 0x15, 0x5c, 0x2a, 0x89, 0xab, 0x98, + 0x75, 0xf0, 0x25, 0x78, 0x06, 0xdd, 0x95, 0xf1, 0x1f, 0xcb, 0xe5, 0xe4, 0x12, 0x9a, 0x78, 0x1c, + 0xc2, 0xa2, 0x95, 0x7c, 0x78, 0xb0, 0xde, 0xce, 0xff, 0xf7, 0xf8, 0x30, 0x7b, 0x66, 0xbb, 0xeb, + 0x99, 0x90, 0x88, 0x59, 0xe6, 0x4d, 0x49, 0x96, 0x79, 0x13, 0xcb, 0xf7, 0x38, 0x8a, 0x3f, 0x38, + 0xca, 0x39, 0xcf, 0x8a, 0x61, 0xda, 0x77, 0x71, 0xad, 0xe0, 0x88, 0xde, 0x47, 0xcf, 0xea, 0x5f, + 0xa0, 0x68, 0xd2, 0xf7, 0xec, 0xf1, 0x11, 0x16, 0x75, 0xce, 0xe8, 0x4d, 0x36, 0x82, 0xa7, 0x3f, + 0xee, 0x98, 0x70, 0x33, 0xb4, 0xa6, 0xcb, 0xaf, 0x9b, 0x45, 0x27, 0x14, 0x2f, 0x8b, 0x13, 0x97, + 0x79, 0x42, 0x70, 0x85, 0x9e, 0x8a, 0x45, 0x20, 0x4a, 0x07, 0x0e, 0x02, 0x99, 0x8c, 0x5a, 0xc3, + 0x10, 0x21, 0x57, 0x46, 0x8c, 0xa9, 0xcf, 0x62, 0xd9, 0x21, 0xbe, 0x5a, 0x78, 0xf5, 0xa0, 0x72, + 0x37, 0xdb, 0xf2, 0x77, 0x76, 0xee, 0x6a, 0xad, 0xd6, 0xb3, 0x5a, 0xa3, 0x57, 0x48, 0xec, 0x76, + 0x9f, 0xe9, 0xbd, 0x46, 0xc2, 0xc5, 0x5c, 0x04, 0xfd, 0x1f, 0xc5, 0xc2, 0x7b, 0x19, 0x48, 0xa5, + 0x5a, 0xe7, 0x22, 0x0c, 0xe2, 0xf6, 0x7d, 0x2c, 0x2d, 0x75, 0x90, 0x83, 0xeb, 0x87, 0xc6, 0xf0, + 0xfd, 0xfc, 0x0e, 0xe7, 0x7e, 0xaa, 0x41, 0x53, 0x10, 0xe5, 0x9e, 0x50, 0x08, 0x9a, 0x2c, 0x88, + 0x83, 0x9d, 0x75, 0x88, 0x94, 0xbf, 0x38, 0xd8, 0xf2, 0xf3, 0x17, 0xff, 0x57, 0xf8, 0xf4, 0x48, + 0xd5, 0x75, 0x77, 0x88, 0x97, 0xd1, 0x44, 0x77, 0x50, 0x83, 0xee, 0xf0, 0x11, 0x5d, 0xce, 0x4f, + 0xc4, 0x7c, 0x57, 0x97, 0xd7, 0x6c, 0x41, 0x81, 0x06, 0xff, 0x51, 0x86, 0xa1, 0xd8, 0x0c, 0xbb, + 0xb5, 0xec, 0x07, 0x1a, 0x7a, 0x38, 0xf6, 0xe7, 0x97, 0x57, 0xfd, 0xb0, 0xe2, 0x1a, 0x57, 0x6c, + 0xe1, 0x9c, 0xd9, 0xb8, 0x90, 0x31, 0x88, 0xd8, 0xaf, 0x0f, 0x90, 0x8a, 0xcc, 0x2e, 0xca, 0x0a, + 0x59, 0x6c, 0x6f, 0x2a, 0x34, 0xfa, 0x33, 0xc5, 0x7d, 0x95, 0xaa, 0xac, 0xac, 0xe9, 0x28, 0x1a, + 0xa5, 0x98, 0x62, 0xe9, 0x2b, 0x9d, 0x49, 0xa6, 0x57, 0xa2, 0x9a, 0x4a, 0x64, 0xac, 0x8d, 0x07, + 0xbc, 0xa7, 0x1a, 0xe7, 0x1f, 0x93, 0xcb, 0x3a, 0x33, 0x61, 0x5b, 0x2e, 0x0e, 0x36, 0xf8, 0xfd, + 0x88, 0x24, 0x53, 0x6d, 0xc4, 0xaa, 0x2d, 0x44, 0xcb, 0xb9, 0x8b, 0xbf, 0xc0, 0x97, 0x81, 0xea, + 0x91, 0x5d, 0x71, 0x72, 0xf1, 0xd7, 0x65, 0x9c, 0x0f, 0x00, 0xe3, 0xfb, 0x83, 0xad, 0x64, 0x28, + 0x6b, 0x9c, 0x1e, 0xca, 0xdd, 0xe1, 0xc4, 0x83, 0x41, 0xc3, 0xbd, 0x16, 0xc4, 0xc6, 0xf5, 0xc7, + 0x12, 0xfa, 0xab, 0x69, 0xd3, 0x99, 0xa0, 0x82, 0xc6, 0x44, 0x0f, 0x16, 0xe8, 0xe7, 0x54, 0x98, + 0xe8, 0xe0, 0x77, 0x99, 0x0e, 0xbd, 0xc4, 0x72, 0x34, 0x7a, 0x4d, 0xa5, 0xb8, 0x26, 0xc9, 0x5a, + 0xca, 0x25, 0x6e, 0x26, 0x28, 0xf5, 0xbe, 0xc8, 0xc4, 0x46, 0xd4, 0xe4, 0xdb, 0x05, 0xc1, 0x7b, + 0xce, 0xac, 0x00, 0xbe, 0xbe, 0x6e, 0x26, 0x8a, 0xad, 0x38, 0x85, 0xfa, 0x57, 0x54, 0x9b, 0x98, + 0xa3, 0xbd, 0xc7, 0x1b, 0xba, 0x7f, 0x30, 0x26, 0x93, 0xbc, 0x7b, 0xb8, 0x9c, 0xcd, 0x9e, 0xf7, + 0x12, 0x27, 0x35, 0x3f, 0x83, 0xfb, 0x57, 0x10, 0x65, 0xd3, 0xc3, 0x3f, 0xa4, 0x81, 0x76, 0xeb, + 0xac, 0x30, 0xa0, 0x75, 0xcf, 0x3c, 0x5f, 0xbe, 0x28, 0x8b, 0xf6, 0x2a, 0xeb, 0x89, 0x9a, 0x4b, + 0x16, 0xe8, 0x53, 0xa8, 0x8c, 0x87, 0x85, 0x0a, 0x95, 0xc7, 0x68, 0xe9, 0xdc, 0x0c, 0xf4, 0xf7, + 0x3b, 0xee, 0x06, 0xbb, 0xa4, 0x95, 0x07, 0x7f, 0x4c, 0x2f, 0xe1, 0x5a, 0x6f, 0x2e, 0xea, 0xb5, + 0x33, 0xf7, 0xd2, 0xad, 0x13, 0x45, 0xc5, 0x2a, 0x6c, 0xa8, 0x82, 0xdd, 0x9e, 0xa2, 0xae, 0x4d, + 0x7c, 0x31, 0xfd, 0x81, 0x50, 0x02, 0x12, 0x7f, 0x39, 0x06, 0xef, 0xf2, 0x8c, 0x02, 0x39, 0x8d, + 0xf8, 0xed, 0xd2, 0x59, 0x33, 0xa6, 0xd3, 0x04, 0x96, 0x53, 0x80, 0xa7, 0x6b, 0xd1, 0x76, 0x32, + 0x47, 0x8d, 0xe8, 0xaa, 0xd9, 0x9b, 0xf3, 0x6c, 0x86, 0x55, 0x94, 0x51, 0x62, 0xc2, 0x26, 0xda, + 0xf4, 0x58, 0x2b, 0x55, 0x8d, 0xc5, 0x49, 0x1c, 0xdc, 0x2c, 0x50, 0x3e, 0xab, 0x49, 0xcf, 0x9a, + 0x33, 0x62, 0x67, 0x27, 0x38, 0x9d, 0xd4, 0xb1, 0xb4, 0x93, 0x19, 0xcd, 0x27, 0xdf, 0x3d, 0xa3, + 0xc9, 0x26, 0x2d, 0x7a, 0x4e, 0x5e, 0x55, 0xac, 0x68, 0x5e, 0x8f, 0x57, 0x8c, 0xab, 0xed, 0x0f, + 0x4c, 0xdd, 0xad, 0xeb, 0x46, 0x65, 0x7d, 0x1a, 0xa9, 0x30, 0x77, 0xc4, 0x19, 0x96, 0x32, 0x00, + 0xac, 0xcc, 0xda, 0xa1, 0x54, 0xca, 0x23, 0xa1, 0x4a, 0xed, 0xf4, 0x52, 0xdc, 0x64, 0x25, 0x92, + 0xd0, 0x49, 0x37, 0xca, 0x49, 0x33, 0x37, 0xb9, 0x46, 0x0a, 0x1b, 0x62, 0xee, 0x62, 0x2d, 0x96, + 0xa6, 0xb7, 0x9c, 0xe7, 0x4a, 0x47, 0x8a, 0x7a, 0xff, 0xe6, 0x99, 0x48, 0xb5, 0x55, 0x18, 0x3a, + 0x31, 0x33, 0x62, 0xfd, 0xa2, 0x56, 0x4c, 0x94, 0x46, 0x7e, 0x2d, 0xe7, 0xaf, 0x68, 0x8d, 0x1f, + 0xf6, 0x5a, 0x72, 0x37, 0x5a, 0xf2, 0xc5, 0xb9, 0xbc, 0xdb, 0x8d, 0x77, 0x33, 0x77, 0x65, 0x89, + 0x5e, 0x4a, 0x39, 0xf5, 0x1c, 0x8b, 0x04, 0x86, 0x7c, 0x83, 0x5b, 0xf3, 0x7e, 0xa8, 0xe4, 0xf2, + 0x87, 0x4b, 0xde, 0xb2, 0xed, 0x80, 0x7f, 0x57, 0x48, 0x86, 0xe1, 0x16, 0x30, 0x13, 0x89, 0x1b, + 0xd2, 0x9f, 0xe3, 0xb8, 0xc9, 0xa7, 0x7d, 0xd1, 0xbf, 0x52, 0x97, 0x20, 0x97, 0x22, 0x1c, 0x04, + 0xed, 0x06, 0x67, 0xca, 0x96, 0x85, 0x12, 0x8d, 0xb5, 0x12, 0x8d, 0xb4, 0xc4, 0x12, 0x4b, 0xdc, + 0x16, 0x4a, 0x34, 0xd7, 0x4a, 0x34, 0xd3, 0x12, 0xb7, 0x77, 0xc6, 0x73, 0x97, 0x2b, 0xe0, 0x40, + 0x4f, 0x4c, 0xa4, 0xb0, 0xdf, 0x96, 0xe8, 0xea, 0xc5, 0xf0, 0x40, 0x95, 0x80, 0xda, 0x8f, 0x81, + 0xba, 0x7d, 0x18, 0x2a, 0xbe, 0x2c, 0xbd, 0x98, 0x93, 0xee, 0x99, 0xcf, 0x6e, 0x8c, 0x1f, 0x80, + 0x74, 0x39, 0xea, 0x2b, 0xe2, 0xb0, 0x2b, 0x7f, 0xd4, 0x74, 0xa3, 0x7c, 0xbf, 0x7c, 0x6b, 0x3d, + 0xc8, 0x63, 0x25, 0x7b, 0xa5, 0x9b, 0x92, 0xd9, 0xd3, 0xc9, 0xf2, 0x92, 0x77, 0x25, 0x9e, 0x36, + 0xd4, 0x69, 0x73, 0x95, 0x2d, 0x38, 0x15, 0xa5, 0xe8, 0xa6, 0x5b, 0xb1, 0x35, 0xd4, 0xbf, 0x89, + 0x2d, 0xfb, 0x7a, 0x95, 0x4d, 0x6b, 0xc6, 0x74, 0xf6, 0x38, 0xbf, 0xed, 0xba, 0xeb, 0xdf, 0xe4, + 0xd0, 0xc8, 0x5c, 0x51, 0xa8, 0xc4, 0x7c, 0xe2, 0x8d, 0x75, 0x8f, 0xf6, 0xb7, 0x67, 0x47, 0xa6, + 0x63, 0x8f, 0xc4, 0xae, 0x6e, 0x87, 0x8c, 0xd7, 0xab, 0xc8, 0xdd, 0x67, 0xa8, 0xc4, 0x54, 0xd2, + 0xb3, 0xa7, 0x0a, 0x70, 0xe7, 0xc5, 0x23, 0xba, 0x4e, 0xf7, 0x5e, 0x32, 0x3f, 0x3e, 0x5b, 0x5a, + 0x97, 0xf4, 0xc7, 0x16, 0x66, 0x5e, 0xd6, 0xea, 0x2e, 0xe8, 0x4c, 0xa5, 0x2c, 0x53, 0x5c, 0xb4, + 0xa7, 0xc4, 0x66, 0x39, 0x85, 0x69, 0x69, 0x8b, 0x8c, 0xbc, 0x80, 0x1e, 0xab, 0x63, 0x5b, 0xfe, + 0x31, 0x11, 0xef, 0x6e, 0xc9, 0x6c, 0x9e, 0xef, 0x67, 0xcf, 0x59, 0xf0, 0x9d, 0xa6, 0x78, 0x75, + 0xe6, 0x3c, 0x64, 0xfb, 0xd2, 0x1f, 0xd7, 0x9d, 0x98, 0xb9, 0x32, 0xdf, 0x53, 0x2f, 0x4d, 0xca, + 0xee, 0x66, 0x45, 0x29, 0x2b, 0xb6, 0xc6, 0xb6, 0x7c, 0xf3, 0xa5, 0xf0, 0x58, 0xc3, 0x45, 0xb2, + 0x55, 0x96, 0x9f, 0x4d, 0x9d, 0x6e, 0x93, 0xa7, 0xea, 0xf7, 0xb1, 0x82, 0x9d, 0x5c, 0x83, 0xe9, + 0x98, 0x7e, 0x48, 0x7a, 0xe2, 0x81, 0xef, 0xfe, 0xd6, 0x8b, 0xc8, 0xea, 0x09, 0xb2, 0x5c, 0xac, + 0xf8, 0xf6, 0xfa, 0xcc, 0x1e, 0x5f, 0x9d, 0x6e, 0xed, 0xc5, 0xae, 0xe0, 0x85, 0xac, 0x1c, 0x1f, + 0x29, 0xb2, 0x54, 0xf1, 0x34, 0x5d, 0x95, 0x77, 0x57, 0xec, 0xdd, 0x45, 0xb1, 0x14, 0x37, 0x1f, + 0xf1, 0x3d, 0xfe, 0x91, 0xe7, 0xc7, 0x69, 0xf1, 0xcc, 0xe6, 0x7f, 0xec, 0xf7, 0xfa, 0x4e, 0x61, + 0xce, 0x91, 0x84, 0xfd, 0x77, 0x8e, 0x13, 0x8d, 0xed, 0xd1, 0x54, 0xf9, 0x8c, 0xbc, 0xaa, 0xb1, + 0x9f, 0xd5, 0x50, 0x35, 0xbe, 0x41, 0x53, 0x60, 0xda, 0x4c, 0x30, 0xe5, 0x02, 0x97, 0xb9, 0x3d, + 0xf4, 0x3e, 0x79, 0x2c, 0x23, 0x9f, 0xe8, 0x66, 0x27, 0x39, 0x63, 0x41, 0x1f, 0x39, 0x77, 0xf1, + 0x9e, 0x07, 0xe8, 0xaa, 0xe7, 0x39, 0x91, 0xed, 0xaf, 0x92, 0x5d, 0xf4, 0x01, 0x71, 0x4c, 0x3c, + 0xa6, 0xd4, 0x2f, 0xdd, 0xaa, 0xbf, 0xbe, 0x27, 0xda, 0x82, 0x47, 0xc2, 0xe8, 0x9a, 0xd4, 0x26, + 0x89, 0x07, 0xa4, 0xdf, 0x8a, 0x5e, 0xb0, 0x66, 0x43, 0xec, 0xbb, 0x14, 0x3c, 0xe4, 0xe2, 0xda, + 0xd4, 0xf3, 0xbb, 0xfc, 0xb3, 0xc4, 0x4b, 0x3b, 0xb6, 0xae, 0x59, 0xee, 0xd6, 0x24, 0xfd, 0xb5, + 0xd3, 0x1a, 0x59, 0x22, 0x48, 0x45, 0x21, 0x43, 0xfe, 0x27, 0x1d, 0x37, 0x87, 0x40, 0x77, 0x88, + 0x06, 0xfb, 0xb7, 0x35, 0x7a, 0x02, 0xba, 0xd7, 0xe8, 0x27, 0x87, 0x42, 0x3a, 0xff, 0xe8, 0x53, + 0xb9, 0xef, 0x24, 0x87, 0xa2, 0xd8, 0x38, 0xa8, 0x75, 0xb1, 0x0b, 0x9e, 0x6f, 0x8e, 0xb0, 0x77, + 0x7a, 0x3f, 0x02, 0x5b, 0xc0, 0xab, 0xe3, 0x89, 0x92, 0xd6, 0x0a, 0xcb, 0xe9, 0xd2, 0xeb, 0xd1, + 0x63, 0x92, 0x2b, 0x71, 0xf4, 0x02, 0xe2, 0xf4, 0x75, 0x5c, 0xe8, 0x39, 0x15, 0x1c, 0xca, 0xe5, + 0xcd, 0x77, 0xd2, 0x41, 0xc2, 0x68, 0xda, 0x29, 0x8e, 0x1a, 0x2a, 0x4b, 0xfd, 0xfc, 0x1d, 0xb4, + 0x9d, 0x4e, 0x47, 0xa2, 0x98, 0xb2, 0x85, 0xc1, 0xbb, 0x9e, 0x13, 0xb4, 0xd9, 0x39, 0x8f, 0x3b, + 0x99, 0xca, 0x2f, 0xd0, 0x4b, 0xc8, 0xd0, 0x88, 0xcb, 0x36, 0xea, 0x73, 0x7e, 0x65, 0x6f, 0x56, + 0x55, 0xca, 0xf6, 0xcd, 0x27, 0xfb, 0xa9, 0x92, 0x4d, 0xcc, 0x22, 0xc6, 0x7e, 0x4e, 0x66, 0x9e, + 0x9c, 0xee, 0xb7, 0xca, 0xff, 0x18, 0xd7, 0x6a, 0x2d, 0xa3, 0xe2, 0x26, 0xe1, 0x56, 0xc3, 0x30, + 0xf0, 0xa7, 0x40, 0x4a, 0x7e, 0x13, 0x80, 0xbb, 0x57, 0xf6, 0x0c, 0x7f, 0x75, 0x72, 0x66, 0xfa, + 0x72, 0x7a, 0x8a, 0x98, 0x27, 0x42, 0x04, 0x9e, 0x39, 0x7a, 0x0e, 0x01, 0x4c, 0x40, 0x08, 0x2e, + 0x33, 0x89, 0x9b, 0x42, 0xe7, 0xae, 0x7f, 0x35, 0xa1, 0x17, 0x85, 0xd2, 0xac, 0x7f, 0xea, 0x5a, + 0xa3, 0xd3, 0xd5, 0x1a, 0xf5, 0xe1, 0x1c, 0xbc, 0x15, 0x96, 0xc6, 0xc7, 0xbc, 0xf6, 0x0d, 0xa2, + 0xf8, 0x42, 0x4d, 0x78, 0x3d, 0x11, 0x84, 0x2a, 0xf5, 0xc7, 0xd4, 0xc8, 0x6f, 0x0b, 0x0b, 0xeb, + 0xdf, 0xc2, 0x59, 0x5d, 0xce, 0x5f, 0xcb, 0x22, 0x65, 0x7a, 0x56, 0xe7, 0x3f, 0xeb, 0x49, 0xef, + 0xc5, 0xa4, 0x97, 0xac, 0x63, 0x94, 0x20, 0x79, 0xae, 0xe3, 0x99, 0x56, 0xee, 0xcc, 0xb2, 0xf8, + 0xd1, 0x3a, 0x0c, 0x8a, 0x11, 0x68, 0x4f, 0x02, 0x0a, 0xd1, 0xdf, 0x06, 0xfd, 0x3f, 0x8b, 0x12, + 0xf3, 0xcb, 0x33, 0x74, 0x00, 0x00 }; From ac90ce9e2dc64f5c86241668135c329f0cb20aae Mon Sep 17 00:00:00 2001 From: Ewoud Date: Tue, 19 Nov 2024 17:12:27 +0100 Subject: [PATCH 3/5] Arduinojson 7.2.0 to 7.2.1 --- platformio.ini | 2 +- src/html_newui.h | 1049 +++++++++++++++++++++++----------------------- 2 files changed, 524 insertions(+), 527 deletions(-) diff --git a/platformio.ini b/platformio.ini index 3e9319c8..83056e59 100644 --- a/platformio.ini +++ b/platformio.ini @@ -100,7 +100,7 @@ build_flags = ${STARBASE_USERMOD_LIVE.build_flags} ;+222.204 bytes 11.7% lib_deps = ${ESPAsyncWebServer.lib_deps} ;alternatively PsychicHttp - https://github.com/bblanchon/ArduinoJson.git @ 7.2.0 ;force latest + https://github.com/bblanchon/ArduinoJson.git @ 7.2.1 ;force latest ; https://github.com/Jason2866/ESP32_Show_Info.git ;optional: ${STARBASE_USERMOD_E131.lib_deps} diff --git a/src/html_newui.h b/src/html_newui.h index 4a249112..44b5b56c 100644 --- a/src/html_newui.h +++ b/src/html_newui.h @@ -7,7 +7,7 @@ */ // Autogenerated from data/newui/index.htm, do not edit!! -const uint16_t PAGE_newui_L = 9782; +const uint16_t PAGE_newui_L = 9732; const uint8_t PAGE_newui[] PROGMEM = { 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xed, 0x7d, 0xd9, 0x76, 0xdb, 0x48, 0xd3, 0xd8, 0xbd, 0x9e, 0x02, 0xc6, 0xcc, 0x67, 0x11, 0x43, 0x10, 0x04, 0x57, 0x49, 0xa4, 0x20, @@ -96,529 +96,526 @@ const uint8_t PAGE_newui[] PROGMEM = { 0x35, 0x72, 0x1a, 0x40, 0x7d, 0xe7, 0xf8, 0x94, 0x49, 0xd4, 0x46, 0x01, 0x31, 0x23, 0x82, 0xb5, 0x88, 0xe6, 0x59, 0xfa, 0x84, 0x44, 0x14, 0x16, 0x52, 0x1f, 0xdf, 0xd9, 0xa7, 0x4f, 0x2b, 0x39, 0xb4, 0x36, 0x77, 0x6d, 0xd7, 0x9f, 0x47, 0x92, 0x6d, 0x19, 0x32, 0xf6, 0x5a, 0x43, 0xad, 0x1e, - 0x2d, 0x7d, 0x30, 0x10, 0xa3, 0x29, 0x19, 0x5d, 0x0d, 0xbd, 0x1b, 0x30, 0x11, 0xc8, 0xd1, 0x6c, - 0xc2, 0xde, 0xa6, 0x20, 0x84, 0xe0, 0x17, 0x12, 0x82, 0x3d, 0x57, 0xb2, 0x14, 0xc2, 0x6f, 0xe2, - 0xe4, 0x81, 0xf3, 0x1d, 0x9a, 0x87, 0x24, 0x78, 0x31, 0x77, 0xcf, 0x48, 0x34, 0xf7, 0x2b, 0x4a, - 0x6c, 0x86, 0x4b, 0x77, 0x24, 0xdd, 0xc9, 0x8c, 0x15, 0xa3, 0xb2, 0xb9, 0x30, 0xed, 0xa8, 0x42, - 0x3f, 0x19, 0x6c, 0x45, 0xae, 0xcf, 0xec, 0x70, 0x54, 0xa7, 0xcd, 0x69, 0xdf, 0x42, 0xe8, 0x85, - 0xa2, 0xd0, 0xef, 0x0a, 0xf2, 0x21, 0x04, 0xfb, 0x57, 0xa9, 0x8c, 0xe7, 0xee, 0x08, 0xc9, 0x53, - 0x01, 0xf2, 0x2a, 0xab, 0x00, 0x5a, 0x0c, 0x5c, 0xc0, 0x3a, 0x9a, 0x6a, 0xe6, 0x30, 0x04, 0xb2, - 0x78, 0x4a, 0x2d, 0x79, 0x8b, 0xe0, 0x2d, 0x56, 0x94, 0xfe, 0xd8, 0x0b, 0x2a, 0xd8, 0x66, 0x24, - 0x79, 0x63, 0x89, 0x28, 0xb9, 0xbe, 0x99, 0x96, 0xc5, 0x98, 0x5f, 0x89, 0x14, 0xca, 0xfe, 0xc8, - 0x58, 0x71, 0x19, 0xef, 0xad, 0xe2, 0xb8, 0x1f, 0x69, 0xfc, 0x4d, 0x1b, 0x7a, 0x66, 0x00, 0x04, - 0x26, 0xa1, 0xdf, 0x6a, 0x02, 0xc3, 0x93, 0x74, 0x37, 0x78, 0x3f, 0x3e, 0xb1, 0xdd, 0xd0, 0x68, - 0xeb, 0x99, 0x54, 0xdf, 0x76, 0xcf, 0x81, 0x03, 0xa1, 0xf1, 0xe5, 0x6b, 0xd2, 0x3e, 0x31, 0xf4, - 0x3e, 0xd9, 0x5d, 0x2f, 0xd9, 0x27, 0xd5, 0xaa, 0xb2, 0x5e, 0xf4, 0x0b, 0xf9, 0x6a, 0xd0, 0xbe, - 0x04, 0xde, 0xdc, 0xb5, 0x2a, 0xad, 0x5f, 0xd8, 0x0b, 0x98, 0x75, 0x6f, 0x56, 0x81, 0x6e, 0xd1, - 0x7e, 0x04, 0x64, 0x44, 0x80, 0xb6, 0xcf, 0xc1, 0x78, 0x43, 0x0f, 0x84, 0x10, 0x81, 0xc3, 0x72, - 0x04, 0x1e, 0x41, 0x70, 0x6d, 0x3a, 0x19, 0x92, 0x29, 0x2b, 0x2a, 0xd9, 0x42, 0x44, 0x14, 0x8d, - 0x0a, 0x03, 0xb1, 0x9e, 0x3e, 0x1d, 0x25, 0x03, 0x3d, 0x21, 0xcc, 0x84, 0x80, 0x7c, 0x01, 0x8b, - 0x69, 0xcd, 0x40, 0x46, 0xb5, 0x41, 0x5a, 0x0f, 0xd6, 0xcf, 0x7a, 0xf9, 0x45, 0x57, 0x1b, 0x6a, - 0x53, 0x6d, 0xa9, 0xed, 0xaf, 0x7d, 0x7b, 0x5c, 0x21, 0x5f, 0xf4, 0x5c, 0x47, 0xf2, 0xdd, 0x50, - 0x75, 0xc3, 0x40, 0x08, 0x56, 0x38, 0x62, 0x83, 0x0f, 0xa9, 0xc2, 0x08, 0x0e, 0x43, 0x10, 0xaa, - 0x00, 0x56, 0x27, 0x4c, 0x04, 0x22, 0x46, 0xbb, 0x19, 0x84, 0xd7, 0xa8, 0x19, 0x01, 0x35, 0xc9, - 0x97, 0xa8, 0xda, 0xc9, 0xb5, 0xda, 0xec, 0x74, 0x8b, 0x04, 0x2c, 0xe9, 0xb5, 0x1f, 0x10, 0xf4, - 0xb5, 0xf6, 0xb1, 0xe9, 0x4a, 0xa4, 0x12, 0x25, 0x8e, 0x89, 0x03, 0xda, 0x96, 0x4b, 0x78, 0x85, - 0x50, 0x4a, 0xe8, 0xba, 0x12, 0x0b, 0x65, 0xb2, 0x42, 0xf4, 0x90, 0x13, 0x8b, 0x50, 0x61, 0xe2, - 0xc8, 0xb5, 0x48, 0x45, 0x9e, 0x46, 0x91, 0x1f, 0xf6, 0x64, 0xc3, 0x28, 0x0e, 0x6d, 0x3f, 0xf0, - 0x22, 0x6f, 0xe4, 0x39, 0xcf, 0xe4, 0x45, 0x18, 0xca, 0x3d, 0xf8, 0x94, 0x41, 0x0f, 0xf6, 0xea, - 0x75, 0xb9, 0xba, 0xa6, 0x05, 0xbc, 0x30, 0x42, 0x5f, 0xaf, 0x2a, 0xd7, 0x01, 0x0a, 0x51, 0x0e, - 0x3d, 0x87, 0x40, 0xfe, 0xa4, 0x22, 0x33, 0x14, 0xa4, 0x79, 0xe0, 0xc8, 0x80, 0xa9, 0xca, 0xb1, - 0xa0, 0xe3, 0xf8, 0x23, 0x19, 0x9e, 0x79, 0xc0, 0xdb, 0xa8, 0x92, 0x66, 0x68, 0x43, 0xdb, 0x35, - 0x83, 0xe5, 0x39, 0x55, 0x0c, 0x66, 0x10, 0x98, 0xcb, 0xe1, 0x7c, 0x3c, 0x26, 0x81, 0x9c, 0x00, - 0x80, 0x29, 0x20, 0x21, 0x9a, 0x11, 0x83, 0x18, 0x7b, 0xd8, 0x31, 0xa2, 0xa1, 0x57, 0x28, 0x01, - 0x55, 0x23, 0xd3, 0x1d, 0x11, 0x18, 0x3e, 0x03, 0x2c, 0xb7, 0x4f, 0xcb, 0x09, 0x8e, 0x61, 0x7b, - 0x17, 0xb6, 0x1b, 0x6d, 0xd3, 0x3c, 0x5e, 0x86, 0xb2, 0x0d, 0x58, 0x1b, 0x25, 0xac, 0x25, 0x25, - 0xac, 0x25, 0x4f, 0x9f, 0xe6, 0x46, 0x63, 0x8e, 0xfc, 0x38, 0xc2, 0xf3, 0xd4, 0xe7, 0xef, 0xa2, - 0x5d, 0x6a, 0x77, 0x82, 0xe5, 0x2a, 0x32, 0x5e, 0x9f, 0xbd, 0x3f, 0xd6, 0x7c, 0x74, 0xd4, 0x45, - 0xf3, 0x31, 0xd0, 0x0f, 0x54, 0x8a, 0xa7, 0xac, 0x18, 0xa0, 0x2a, 0x28, 0x47, 0x82, 0x00, 0x24, - 0x49, 0xd0, 0x0e, 0xb5, 0x8b, 0x44, 0x93, 0x64, 0xd5, 0x53, 0x45, 0x59, 0x2a, 0x71, 0xf8, 0xa1, - 0xa1, 0x16, 0x7d, 0xfa, 0xf4, 0x0b, 0x7a, 0xf6, 0x80, 0xa3, 0xac, 0xca, 0x88, 0x0a, 0x7b, 0x02, - 0xb9, 0xc3, 0x87, 0xaf, 0xa9, 0x8e, 0x66, 0xe0, 0x8a, 0xe8, 0xee, 0x93, 0x46, 0x32, 0xf2, 0x3d, - 0xd4, 0x3c, 0x25, 0x3a, 0xd5, 0xd3, 0x40, 0x67, 0x1b, 0x11, 0x7c, 0xa2, 0x4e, 0x37, 0x9e, 0xe8, - 0x40, 0x92, 0x67, 0x39, 0x1e, 0x63, 0x44, 0x82, 0x85, 0x59, 0x39, 0xc9, 0x74, 0x40, 0xef, 0x5a, - 0x4b, 0x49, 0x8c, 0x4e, 0x40, 0x24, 0x12, 0xd6, 0xad, 0x44, 0xa3, 0x31, 0xf2, 0x51, 0xbe, 0x68, - 0x76, 0xc8, 0xf8, 0x13, 0x29, 0xf9, 0x16, 0x20, 0xfe, 0x90, 0xa8, 0x34, 0x80, 0x33, 0x01, 0x68, - 0xdf, 0xf8, 0x64, 0x94, 0xab, 0x37, 0xaf, 0x61, 0xe2, 0x38, 0x23, 0x2d, 0xe0, 0x2f, 0x84, 0x4c, - 0x56, 0x72, 0x35, 0x02, 0x5d, 0x69, 0x0e, 0x8d, 0x40, 0x60, 0x4c, 0x04, 0x4b, 0x2a, 0x9f, 0xa0, - 0x34, 0xce, 0xed, 0x19, 0xf1, 0xe6, 0x51, 0x85, 0x51, 0x5f, 0x6d, 0x74, 0x60, 0x24, 0xa5, 0x72, - 0x0b, 0x6c, 0xca, 0xd6, 0xee, 0xf9, 0xc4, 0x2d, 0xad, 0x1c, 0x33, 0xb0, 0xc6, 0x2c, 0x30, 0xe5, - 0x61, 0x29, 0x34, 0xe7, 0x2e, 0x0e, 0xe5, 0x80, 0xfc, 0x31, 0x27, 0x61, 0xf4, 0x1a, 0x4d, 0x0a, - 0xa1, 0x23, 0xf7, 0xf1, 0x46, 0x17, 0x38, 0x83, 0xa2, 0x07, 0x65, 0x9e, 0x94, 0x0c, 0x77, 0x2e, - 0x82, 0x21, 0x04, 0x5a, 0xee, 0xc4, 0x1e, 0xc3, 0x28, 0xe0, 0xfa, 0x19, 0x90, 0x0b, 0x09, 0xa8, - 0x9f, 0x88, 0x36, 0x9f, 0x52, 0x92, 0x35, 0x9f, 0xc3, 0x35, 0x93, 0x4d, 0xe9, 0x65, 0x87, 0xef, - 0x87, 0xdf, 0x80, 0x19, 0x00, 0xab, 0xe4, 0x4c, 0x18, 0x4b, 0xd6, 0xae, 0xc8, 0x32, 0xac, 0x08, - 0x71, 0xf3, 0x40, 0x89, 0x46, 0x5f, 0x55, 0x17, 0x84, 0x29, 0xf4, 0x1d, 0x30, 0xac, 0xb2, 0x26, - 0x03, 0xc9, 0x8d, 0x9c, 0x68, 0x8c, 0xa1, 0xb7, 0x1f, 0xcc, 0xa0, 0xe2, 0xc2, 0xa0, 0x54, 0xdd, - 0x2f, 0x8d, 0xaf, 0x74, 0x94, 0x86, 0x62, 0x20, 0x5f, 0x9b, 0x01, 0x92, 0xe6, 0xdc, 0x3b, 0x40, - 0x5f, 0x01, 0xd2, 0xfb, 0x32, 0xaa, 0x1e, 0x50, 0x60, 0x21, 0x95, 0xd0, 0x7b, 0xb0, 0x55, 0x23, - 0xd5, 0x05, 0x4e, 0x66, 0x85, 0xa5, 0x09, 0x83, 0x8f, 0xca, 0x9f, 0xcc, 0x35, 0x34, 0xd4, 0x13, - 0x81, 0x98, 0x53, 0x8c, 0x84, 0x1b, 0x09, 0x20, 0x71, 0xcc, 0x99, 0x90, 0xaa, 0x63, 0xaa, 0x52, - 0x52, 0xe7, 0x93, 0x6a, 0xbd, 0x48, 0xba, 0x38, 0x3a, 0x3e, 0xdf, 0xfe, 0xfd, 0xdd, 0xe0, 0x93, - 0xd1, 0xec, 0x74, 0x54, 0x7c, 0x6b, 0x74, 0xe9, 0x6b, 0xb7, 0xd3, 0x69, 0x75, 0xfa, 0xc2, 0x0c, - 0x49, 0xa8, 0x66, 0x48, 0xe2, 0x1b, 0x24, 0x7e, 0x27, 0xb8, 0x5a, 0x87, 0x0e, 0xc1, 0xc7, 0xfd, - 0x25, 0x85, 0x88, 0x93, 0x12, 0xa3, 0xc3, 0xb2, 0x02, 0xcc, 0xc5, 0xe1, 0x65, 0xf2, 0xf0, 0x07, - 0x87, 0xcc, 0xff, 0x60, 0x94, 0xbf, 0xa3, 0x04, 0x38, 0x14, 0xbc, 0x4a, 0xa2, 0x81, 0xfe, 0x00, - 0x29, 0x38, 0x98, 0xda, 0x8e, 0x05, 0x64, 0x51, 0xbd, 0xb4, 0x2e, 0x3b, 0x7c, 0xeb, 0x2d, 0x20, - 0x08, 0x35, 0x51, 0x77, 0x25, 0x48, 0x10, 0x2d, 0xf2, 0xd2, 0x74, 0x05, 0x4c, 0x64, 0xa6, 0x84, - 0x6b, 0x47, 0x07, 0xa6, 0xcf, 0x45, 0x48, 0x66, 0x32, 0x27, 0x3f, 0x31, 0x50, 0xf9, 0x50, 0x07, - 0x87, 0xd5, 0x21, 0xcb, 0x5c, 0x32, 0xe1, 0x21, 0xd1, 0x43, 0x60, 0x3c, 0xbd, 0x5d, 0xe0, 0x20, - 0x71, 0x27, 0xd1, 0xb4, 0xef, 0x81, 0xa5, 0x04, 0x1d, 0xed, 0x3d, 0x8b, 0xaa, 0x06, 0xf8, 0xa8, - 0x53, 0x33, 0x18, 0x44, 0x80, 0x1e, 0xb4, 0x7d, 0x01, 0xf8, 0xf2, 0xb6, 0x7b, 0x4f, 0x72, 0x28, - 0xa6, 0x60, 0xe0, 0x87, 0x96, 0xe7, 0xd4, 0x1a, 0x8a, 0x82, 0x55, 0xca, 0x92, 0x5c, 0xcd, 0xc0, - 0xf7, 0xe4, 0x1a, 0x88, 0x40, 0x26, 0xe1, 0xcf, 0x3f, 0xe5, 0xdf, 0xf3, 0x29, 0xbc, 0x54, 0x2f, - 0x8f, 0x8f, 0x20, 0x63, 0x94, 0xa5, 0x5a, 0x32, 0x36, 0x38, 0xc9, 0x9e, 0xe4, 0xb5, 0x1c, 0x41, - 0x2f, 0x19, 0x35, 0xca, 0x13, 0x68, 0x00, 0x1e, 0x65, 0x51, 0x14, 0xa5, 0x90, 0x13, 0x0a, 0xda, - 0xf7, 0x68, 0x2d, 0x99, 0x34, 0x25, 0xc3, 0x66, 0xea, 0x95, 0x0e, 0x5c, 0xeb, 0xf0, 0x86, 0x8c, - 0xe6, 0x11, 0x41, 0x96, 0x83, 0x91, 0x70, 0x55, 0xa6, 0xaa, 0xc0, 0x25, 0xa1, 0x5e, 0x2b, 0xa9, - 0x46, 0xea, 0x6a, 0x46, 0xa2, 0xa9, 0x67, 0xf5, 0x64, 0x10, 0x32, 0x39, 0x56, 0xd0, 0xb9, 0x07, - 0x0d, 0x63, 0xec, 0x81, 0x9f, 0x75, 0xf5, 0x0c, 0x78, 0x49, 0x6e, 0x22, 0x20, 0x64, 0x25, 0x7c, - 0xfa, 0x14, 0x94, 0xca, 0x0b, 0x1b, 0x14, 0xb9, 0x5c, 0x8d, 0xaa, 0x32, 0xd5, 0xb8, 0x63, 0x74, - 0x4f, 0x60, 0xac, 0xca, 0xe8, 0xed, 0x8a, 0x82, 0x2b, 0xb7, 0xe2, 0xa1, 0xca, 0x02, 0x1f, 0x8d, - 0xda, 0xb1, 0x8c, 0xdf, 0xab, 0xac, 0x68, 0x35, 0x9e, 0x2a, 0x1f, 0xa2, 0x66, 0x03, 0x53, 0x10, - 0x45, 0x20, 0x00, 0x58, 0xa3, 0xa2, 0x66, 0x87, 0x28, 0x16, 0x57, 0x70, 0xcc, 0x9b, 0x8e, 0xb3, - 0xac, 0x80, 0x10, 0xed, 0xad, 0x62, 0x25, 0xde, 0xd8, 0xad, 0xf3, 0x70, 0x34, 0x89, 0x4b, 0x37, - 0xfe, 0xe5, 0x02, 0x53, 0x1a, 0x33, 0xad, 0xb2, 0x31, 0xc8, 0x2a, 0x13, 0xb4, 0x65, 0x63, 0xa3, - 0xcb, 0x5d, 0x7f, 0x6f, 0xd7, 0x31, 0x87, 0xc4, 0xd9, 0xa3, 0x85, 0x76, 0xeb, 0xec, 0x45, 0xfa, - 0x4f, 0x2e, 0x60, 0x0a, 0x24, 0x20, 0x0e, 0x08, 0x00, 0x9f, 0x66, 0xa3, 0x31, 0x59, 0x8d, 0x25, - 0xc9, 0x34, 0x9c, 0xca, 0xa7, 0x80, 0xc5, 0x9b, 0x9a, 0xee, 0x04, 0xe3, 0xaa, 0xd4, 0x75, 0x64, - 0x81, 0x5c, 0x28, 0x02, 0x39, 0xaa, 0xde, 0xc0, 0x2f, 0x9e, 0x13, 0x45, 0xde, 0x63, 0x8d, 0x40, - 0x33, 0x9e, 0x4f, 0x25, 0x8a, 0xa6, 0x1b, 0x30, 0x64, 0xcd, 0x00, 0xe7, 0xd7, 0x64, 0x1a, 0x4c, - 0xee, 0xc3, 0xd3, 0x6e, 0x9d, 0x41, 0xdc, 0x57, 0xc2, 0xc1, 0xa0, 0x53, 0x4e, 0xe3, 0xcf, 0x87, - 0xca, 0x2c, 0x1c, 0x30, 0xe3, 0x7b, 0x1f, 0xdf, 0x1e, 0x3e, 0x7f, 0x08, 0x72, 0x02, 0x23, 0x86, - 0x80, 0x4d, 0xdd, 0x7b, 0xc9, 0x1e, 0x1e, 0x82, 0x07, 0x97, 0x41, 0xde, 0x7b, 0x4e, 0xae, 0x1f, - 0x82, 0xe3, 0x18, 0x3f, 0x0a, 0x5b, 0xcb, 0x0c, 0xae, 0xb0, 0x52, 0x70, 0xd1, 0xb1, 0x87, 0x0f, - 0x81, 0x0f, 0xe1, 0x53, 0xde, 0xdb, 0x87, 0xcf, 0x87, 0x20, 0x21, 0x9c, 0x82, 0x8a, 0xc1, 0xed, - 0xbc, 0x7a, 0x90, 0xc8, 0xbe, 0x39, 0x42, 0x9e, 0xe0, 0xd7, 0x43, 0xb0, 0xee, 0xd2, 0x04, 0x7a, - 0x1d, 0xc3, 0xe7, 0x3a, 0x64, 0x9d, 0xc9, 0xcb, 0xde, 0x2e, 0x54, 0xe8, 0xee, 0x49, 0x7f, 0x62, - 0x0a, 0x3e, 0xf1, 0x30, 0x9d, 0x45, 0xe6, 0xc3, 0x79, 0x14, 0x61, 0x9c, 0xce, 0xeb, 0xa3, 0x26, - 0xd7, 0x1e, 0x5d, 0x1c, 0x31, 0xb9, 0x1b, 0x66, 0xde, 0xd1, 0xcf, 0xb2, 0x47, 0x57, 0x38, 0x5f, - 0x4c, 0xed, 0x24, 0xba, 0x3f, 0x95, 0xcd, 0x9f, 0x57, 0xa5, 0xbe, 0x4b, 0x40, 0x7c, 0x07, 0xd0, - 0x87, 0x58, 0x1a, 0x6c, 0xe8, 0xdc, 0x96, 0x51, 0xad, 0xc4, 0x9b, 0x92, 0xba, 0xf9, 0x3b, 0x20, - 0x35, 0xde, 0x04, 0x93, 0xbe, 0xb7, 0x5b, 0xa7, 0x78, 0x64, 0xf0, 0xf5, 0xf7, 0x2e, 0xe3, 0x44, - 0x80, 0x41, 0xc1, 0xe4, 0x0c, 0xbd, 0xc8, 0xa0, 0x3e, 0x09, 0x36, 0xe6, 0x9c, 0x45, 0x5e, 0x00, - 0x43, 0x9a, 0x46, 0x81, 0x11, 0x99, 0x55, 0xd8, 0x28, 0xa1, 0xf9, 0x89, 0x29, 0x14, 0x0f, 0xdc, - 0x18, 0x6a, 0x74, 0xdc, 0xe2, 0x8c, 0x0f, 0x58, 0xb2, 0x74, 0xd2, 0x83, 0x7b, 0xca, 0xb9, 0x5a, - 0x27, 0xf9, 0x5a, 0x69, 0x90, 0x20, 0xa3, 0xc2, 0x05, 0x13, 0x87, 0x9a, 0x9c, 0x0e, 0xf4, 0xdc, - 0xb8, 0x54, 0xd8, 0x78, 0x33, 0xd0, 0xc5, 0xcb, 0xa9, 0xb7, 0x68, 0xe9, 0x90, 0xbd, 0x8d, 0x5e, - 0xe0, 0x79, 0x91, 0x4a, 0x3f, 0x35, 0x31, 0xf2, 0x56, 0xb5, 0xda, 0x70, 0x52, 0x83, 0x10, 0xcc, - 0x0b, 0x7a, 0x3f, 0x35, 0x9a, 0xf8, 0xb7, 0x5f, 0xab, 0xa1, 0x9e, 0x16, 0x89, 0xa3, 0xb1, 0xa5, - 0xef, 0x74, 0x31, 0x71, 0x9a, 0x24, 0x35, 0xb7, 0x48, 0x17, 0x93, 0xd6, 0x53, 0x86, 0x5e, 0x60, - 0x91, 0x20, 0x49, 0xb6, 0x4c, 0xab, 0x6b, 0x42, 0x32, 0x43, 0x30, 0x69, 0xc7, 0xdc, 0x36, 0xc7, - 0x63, 0x48, 0xa6, 0x2a, 0x48, 0xa4, 0x6e, 0xb7, 0x46, 0x1d, 0x32, 0x84, 0x54, 0xaa, 0x20, 0xdd, - 0x04, 0xba, 0xb3, 0xb3, 0x6d, 0xb6, 0x5b, 0x90, 0x3e, 0x06, 0x5d, 0x53, 0x0b, 0xed, 0x5b, 0xd2, - 0x6b, 0xb4, 0xfd, 0x9b, 0x38, 0xed, 0x08, 0x1d, 0x5e, 0xd9, 0x9e, 0x38, 0xb6, 0x4b, 0xcc, 0xa0, - 0x06, 0xc3, 0xd9, 0xb2, 0xa9, 0x07, 0xe2, 0x49, 0x43, 0x0f, 0xc4, 0x6c, 0xa6, 0x4a, 0x3f, 0x8d, - 0xc7, 0x43, 0xd2, 0x6a, 0x49, 0xfa, 0x3f, 0xe0, 0x79, 0xd8, 0xd5, 0xc7, 0xdd, 0xa6, 0x04, 0x71, - 0xec, 0x3f, 0x94, 0x42, 0xb7, 0xf5, 0x16, 0xfe, 0xcd, 0x75, 0x9b, 0x41, 0x6f, 0x37, 0xb2, 0x1d, - 0x67, 0x69, 0x6b, 0x1d, 0xef, 0x52, 0x62, 0xe4, 0x7b, 0xfd, 0x82, 0xfe, 0x59, 0xeb, 0x75, 0x97, - 0x0c, 0xb7, 0x0b, 0xbd, 0xd3, 0x93, 0xde, 0xa1, 0xea, 0x7a, 0x98, 0x45, 0x63, 0x4a, 0xcc, 0x04, - 0xd1, 0x60, 0x32, 0xac, 0xa0, 0x67, 0x28, 0x35, 0xba, 0xba, 0x2a, 0xe9, 0x4a, 0x06, 0xdf, 0x92, - 0xac, 0x1c, 0xe2, 0x25, 0xf9, 0xb9, 0x4e, 0x94, 0xe4, 0x97, 0xe2, 0xcd, 0x15, 0xe9, 0x63, 0x79, - 0xb2, 0xb3, 0xb5, 0xd3, 0xdc, 0x69, 0x33, 0x9e, 0xb4, 0xb7, 0xda, 0x9d, 0x76, 0x39, 0x4f, 0xc6, - 0xc3, 0x71, 0x7b, 0xdc, 0xce, 0xf1, 0xa4, 0xd9, 0x68, 0x6f, 0x37, 0x87, 0x59, 0x8e, 0x24, 0x29, - 0x79, 0x8e, 0x24, 0xc9, 0x79, 0xa6, 0x24, 0xc9, 0xf9, 0x6e, 0x64, 0x13, 0x6a, 0x61, 0x6f, 0x3b, - 0xe9, 0x18, 0x68, 0xfc, 0x7f, 0xd1, 0x21, 0x93, 0x32, 0x67, 0x6d, 0xb8, 0x08, 0x01, 0xca, 0x74, - 0xa1, 0xd1, 0x6c, 0x65, 0x91, 0xd5, 0xe9, 0x9f, 0x5c, 0x8f, 0xba, 0x56, 0x77, 0xbb, 0x6b, 0xd2, - 0xd1, 0x90, 0x47, 0x55, 0x64, 0x08, 0x8a, 0x81, 0x3d, 0x7b, 0x98, 0x64, 0xdd, 0x9d, 0xae, 0xb5, - 0x65, 0xf1, 0x22, 0x68, 0xd3, 0x72, 0x45, 0xf4, 0x4e, 0x6b, 0xa7, 0xbb, 0x5f, 0x28, 0x72, 0xb8, - 0xf5, 0xa2, 0xf1, 0xe2, 0xf0, 0xf1, 0x23, 0x34, 0x8f, 0xa5, 0x00, 0xe5, 0x4d, 0xa2, 0x71, 0x2c, - 0x90, 0x64, 0x64, 0x5a, 0xed, 0x42, 0x93, 0x64, 0xab, 0xd3, 0xde, 0xd6, 0xd7, 0xea, 0x62, 0xc9, - 0x42, 0x21, 0xa1, 0xd5, 0xcc, 0x63, 0xcf, 0x28, 0x97, 0x15, 0xe4, 0xe6, 0xd0, 0x6a, 0x50, 0xde, - 0x4f, 0x6a, 0xf3, 0xc0, 0xe9, 0xc1, 0xff, 0xca, 0x26, 0x5d, 0x77, 0xc4, 0x95, 0x53, 0x9b, 0xd9, - 0xb1, 0xba, 0x37, 0x8a, 0x08, 0x70, 0x2f, 0x02, 0xef, 0x6e, 0x26, 0x96, 0x21, 0x37, 0x93, 0x21, - 0x37, 0x36, 0x67, 0xb6, 0xb3, 0xec, 0x6d, 0x9e, 0x04, 0x04, 0x1c, 0x41, 0x74, 0x15, 0x22, 0xa9, - 0x79, 0xb2, 0xa9, 0x8e, 0xe6, 0xe0, 0x9a, 0x5e, 0x13, 0x8e, 0x0d, 0x9a, 0xe7, 0x3c, 0x32, 0x8d, - 0x56, 0xab, 0xbb, 0x55, 0xaa, 0x40, 0xfe, 0x06, 0x64, 0x0e, 0xbc, 0x99, 0x3d, 0x92, 0x8e, 0xc9, - 0x9c, 0xa4, 0x88, 0xa0, 0x25, 0xa2, 0x06, 0x28, 0xb7, 0xfe, 0x43, 0x57, 0x3f, 0xa8, 0xd9, 0x15, - 0xae, 0x1f, 0x75, 0x9e, 0xc7, 0x36, 0x4f, 0x95, 0x70, 0x82, 0xdd, 0x35, 0xaf, 0xb5, 0x6f, 0x21, - 0xcd, 0x00, 0x84, 0x78, 0x46, 0x53, 0x6f, 0xb6, 0x1b, 0x0d, 0xbd, 0x43, 0x93, 0xc1, 0xcc, 0x7b, - 0x2c, 0x99, 0x4d, 0x32, 0xd6, 0xeb, 0x13, 0x3b, 0x9a, 0xce, 0x87, 0xe8, 0x23, 0xd7, 0xc9, 0xc2, - 0x5b, 0xd8, 0x75, 0x51, 0xbf, 0x2a, 0x85, 0xf3, 0xe1, 0xcc, 0x8e, 0x24, 0xe6, 0xbb, 0x86, 0x12, - 0x68, 0x20, 0x74, 0x52, 0x25, 0xda, 0xa6, 0x19, 0x4a, 0x27, 0xa7, 0x34, 0x2d, 0x5f, 0x8a, 0xb6, - 0x32, 0xa0, 0xcb, 0xcb, 0xe1, 0x63, 0x5a, 0xa9, 0xe3, 0x50, 0xb4, 0xa3, 0xb0, 0x8e, 0xf8, 0xd3, - 0xc2, 0x07, 0x9e, 0xbf, 0x0c, 0xe8, 0x3a, 0xc9, 0xff, 0xfa, 0xef, 0x14, 0x79, 0xe9, 0x25, 0x2d, - 0x9c, 0x74, 0x1c, 0x5c, 0x7d, 0x2c, 0x22, 0xf1, 0x56, 0xfe, 0x95, 0xa2, 0x90, 0x8d, 0xfa, 0x2f, - 0xbf, 0x6c, 0x48, 0xbf, 0x60, 0x1c, 0x42, 0x19, 0x26, 0x65, 0x44, 0x86, 0xad, 0xb4, 0x60, 0xee, - 0x49, 0x60, 0x5f, 0x23, 0xfb, 0x7c, 0x1a, 0x1c, 0x86, 0x92, 0x19, 0xc0, 0x33, 0x38, 0x69, 0xf6, - 0x0d, 0xb1, 0xa4, 0x05, 0x10, 0x43, 0x32, 0xa5, 0xcd, 0x9f, 0x36, 0xa5, 0x10, 0x19, 0x42, 0x96, - 0x90, 0xe4, 0x38, 0x88, 0xc7, 0x0c, 0x22, 0xfc, 0x19, 0x28, 0x2f, 0x0b, 0x57, 0xc5, 0x20, 0x47, - 0x1a, 0x42, 0x84, 0x08, 0xa1, 0x06, 0xd4, 0x59, 0xe7, 0x01, 0x10, 0x5f, 0xa7, 0x91, 0x56, 0x1b, - 0x1b, 0x92, 0x94, 0x8d, 0x83, 0x20, 0x05, 0xa5, 0x02, 0xfd, 0x2a, 0x0c, 0x86, 0x24, 0x43, 0xca, - 0xae, 0x66, 0x6d, 0xd0, 0x4c, 0x7c, 0x61, 0x0e, 0xd9, 0x5b, 0x1b, 0x7a, 0x5e, 0x35, 0x24, 0xd9, - 0xaa, 0x8d, 0x1d, 0x72, 0x23, 0xe1, 0x07, 0x0e, 0x8e, 0xf9, 0xcc, 0x95, 0xb3, 0xc0, 0x49, 0x40, - 0x85, 0xc0, 0x97, 0xbb, 0x4f, 0x6a, 0x35, 0x69, 0x00, 0x08, 0x45, 0xb4, 0x4f, 0xa6, 0x14, 0xe2, - 0x36, 0x03, 0x33, 0xa2, 0xb8, 0x46, 0x9e, 0x2f, 0x99, 0x43, 0xef, 0x9a, 0xd0, 0x37, 0x4a, 0x1c, - 0x10, 0x67, 0x7b, 0xc2, 0x7c, 0x54, 0x28, 0xe6, 0x78, 0x0b, 0x9a, 0x35, 0x25, 0x54, 0x38, 0x50, - 0xf2, 0x6e, 0x7c, 0x9c, 0x29, 0xbc, 0x86, 0x0a, 0x81, 0x86, 0x10, 0xac, 0x62, 0xe2, 0x18, 0x24, - 0xc3, 0x74, 0x97, 0x62, 0x6b, 0x83, 0xb4, 0xc1, 0xc4, 0x5d, 0x02, 0xae, 0x86, 0xd3, 0x00, 0xb7, - 0x30, 0xd8, 0x38, 0xa5, 0x4a, 0x80, 0xa6, 0x20, 0xcb, 0x10, 0x48, 0x4f, 0x31, 0x08, 0x86, 0x82, - 0xe1, 0x14, 0x1a, 0x80, 0x56, 0xb1, 0x0d, 0x33, 0x83, 0x64, 0xad, 0xb6, 0x07, 0x75, 0xec, 0x5a, - 0xf6, 0x35, 0xf5, 0xb0, 0x59, 0x56, 0xb2, 0x2e, 0xc6, 0xd4, 0x02, 0xc1, 0x45, 0x0d, 0x09, 0x14, - 0x02, 0x9b, 0x34, 0xdc, 0xa3, 0x8d, 0xd2, 0xee, 0x9e, 0xa0, 0x57, 0x9d, 0xd6, 0x29, 0x21, 0x3c, - 0xb6, 0x62, 0x4a, 0xbe, 0x69, 0x59, 0xc0, 0x2a, 0xac, 0x97, 0x32, 0x12, 0xe8, 0xb0, 0x80, 0x28, - 0x5e, 0xb2, 0xa3, 0x4d, 0x8a, 0x17, 0xb2, 0x3c, 0xc4, 0x1e, 0xa4, 0x85, 0x29, 0x3e, 0x82, 0xdb, - 0x53, 0x1b, 0xca, 0xbb, 0x0c, 0x3b, 0xde, 0x18, 0x45, 0x92, 0x23, 0xe6, 0x9b, 0xb5, 0x96, 0x94, - 0xc1, 0x4e, 0xde, 0x0b, 0xbd, 0x59, 0x16, 0x8b, 0xdd, 0x3a, 0x40, 0xef, 0xf1, 0xde, 0xd1, 0x67, - 0x78, 0xd8, 0xe0, 0x35, 0xbd, 0xcb, 0xd3, 0x5f, 0x1a, 0x9a, 0x81, 0x04, 0x22, 0x0e, 0x68, 0x33, - 0x29, 0xe4, 0x4c, 0x40, 0xf2, 0x03, 0xf2, 0x40, 0x72, 0xa0, 0xa5, 0xe9, 0x2c, 0xcc, 0x65, 0x28, - 0x5d, 0xdb, 0xa1, 0x3d, 0x04, 0x0d, 0x51, 0xa0, 0x1b, 0x72, 0xb4, 0x06, 0x35, 0x26, 0x94, 0xe3, - 0xa2, 0x63, 0x82, 0x79, 0x75, 0xa9, 0xa2, 0x8c, 0x46, 0x53, 0x26, 0x48, 0x8c, 0x4f, 0x35, 0x1d, - 0x43, 0x0e, 0x8a, 0x57, 0x0e, 0x2b, 0x4a, 0x04, 0xe4, 0x2e, 0xbc, 0x84, 0x94, 0x38, 0x3e, 0x8c, - 0xd0, 0x84, 0xdf, 0x88, 0x12, 0x68, 0x28, 0x07, 0x10, 0x21, 0x05, 0xb1, 0xa0, 0x84, 0xbc, 0x36, - 0x6d, 0x07, 0xf7, 0xd5, 0x48, 0xc3, 0xc0, 0x0b, 0x17, 0xc0, 0x35, 0x6a, 0x80, 0x34, 0xe9, 0x3d, - 0x88, 0xd1, 0x18, 0x65, 0x0c, 0x7a, 0x02, 0x01, 0x4a, 0x22, 0x37, 0x50, 0x96, 0x51, 0x1a, 0x3b, - 0x6a, 0x26, 0xc2, 0x26, 0x81, 0x6e, 0x86, 0x38, 0x1e, 0xe9, 0xe2, 0x92, 0x6b, 0xac, 0x06, 0xc4, - 0x27, 0x54, 0xa1, 0x3b, 0x50, 0x07, 0x95, 0x28, 0x68, 0x6c, 0x0c, 0x26, 0x05, 0xb2, 0xd0, 0x75, - 0x23, 0x9c, 0x70, 0x5c, 0xda, 0x99, 0x2b, 0x57, 0x46, 0xa3, 0x84, 0x3e, 0x94, 0x14, 0x93, 0xc0, - 0x5b, 0xd4, 0x1a, 0x92, 0xc7, 0x91, 0xab, 0x31, 0x54, 0xb2, 0x02, 0x46, 0x69, 0x92, 0x74, 0x1e, - 0x69, 0xc3, 0xf8, 0x14, 0x12, 0x48, 0x04, 0x67, 0x62, 0x09, 0xa3, 0xcc, 0x22, 0x59, 0x5e, 0x22, - 0x85, 0x4c, 0x4e, 0xc7, 0x31, 0x0c, 0x0b, 0x4a, 0x96, 0x51, 0x04, 0xb6, 0x87, 0x51, 0x32, 0x11, - 0xa9, 0x1c, 0xeb, 0x78, 0x13, 0x45, 0xf6, 0x4d, 0x6b, 0xe0, 0x79, 0x72, 0x7c, 0x32, 0x45, 0x58, - 0xeb, 0x39, 0x7e, 0xe7, 0x58, 0x9b, 0xf6, 0x68, 0x59, 0x33, 0xe7, 0x91, 0x97, 0xd6, 0x20, 0x24, - 0x31, 0x57, 0x1d, 0xe2, 0x55, 0x4a, 0x98, 0x6c, 0xa5, 0x8d, 0xb5, 0x4a, 0x25, 0x6a, 0x48, 0x21, - 0x00, 0x06, 0x97, 0xb1, 0x36, 0x84, 0xfe, 0x5e, 0xf5, 0x24, 0xfa, 0x55, 0xc3, 0x14, 0x79, 0x6f, - 0x63, 0xbd, 0xd1, 0x54, 0xe2, 0x38, 0x7d, 0xcf, 0xd1, 0xe4, 0xa1, 0x74, 0xbb, 0xa0, 0x6f, 0xcc, - 0x99, 0x0f, 0x92, 0xe3, 0x8d, 0xe9, 0xf0, 0x9d, 0x10, 0x36, 0x6a, 0x45, 0xab, 0xd4, 0x1a, 0x32, - 0xb1, 0xc8, 0xe8, 0x24, 0x15, 0xf5, 0xcd, 0xd2, 0x9b, 0x83, 0x98, 0x00, 0xfb, 0x69, 0x81, 0xec, - 0x98, 0x7d, 0x04, 0xa5, 0x29, 0x89, 0xef, 0x26, 0xd8, 0xb4, 0x21, 0xba, 0xc9, 0x06, 0x65, 0xaf, - 0x43, 0x66, 0xf2, 0xde, 0x2b, 0x02, 0x71, 0x03, 0x88, 0xe1, 0x7b, 0x97, 0xd0, 0xad, 0x06, 0x8f, - 0x83, 0x3e, 0x5f, 0x78, 0xdf, 0x03, 0x3d, 0x0d, 0xc8, 0xf7, 0xd4, 0xfe, 0xc2, 0x9b, 0x07, 0xdf, - 0x03, 0x0e, 0x12, 0x99, 0x82, 0x67, 0x78, 0x84, 0xf4, 0xfb, 0x1e, 0x06, 0x31, 0x75, 0x80, 0x62, - 0x0e, 0x64, 0xb5, 0x03, 0xae, 0x2b, 0x6e, 0x12, 0x7d, 0x0a, 0x56, 0x76, 0x1e, 0x71, 0xce, 0x41, - 0xc3, 0x7f, 0x3b, 0xc7, 0xf8, 0xa0, 0x15, 0x7d, 0x1d, 0x9a, 0xa3, 0xab, 0x09, 0x5d, 0x5c, 0xe6, - 0xfe, 0xa4, 0x34, 0x09, 0xc8, 0x52, 0x4e, 0xfb, 0xc6, 0xa9, 0x43, 0xcd, 0x07, 0x20, 0x66, 0x52, - 0x29, 0x97, 0x08, 0x9b, 0x11, 0x41, 0xe3, 0x41, 0xad, 0x17, 0x75, 0x04, 0x98, 0x6e, 0x07, 0x34, - 0x47, 0xb8, 0x44, 0x10, 0x80, 0x96, 0x12, 0x96, 0x8c, 0xe2, 0xcd, 0x14, 0x73, 0x64, 0x5e, 0x21, - 0x3d, 0xe7, 0x3e, 0x53, 0x4a, 0x73, 0x90, 0x4f, 0xba, 0x6b, 0x90, 0x6a, 0x02, 0xae, 0xc9, 0xf3, - 0xed, 0x66, 0xc7, 0x5f, 0xc9, 0x78, 0xe7, 0x4a, 0x9b, 0x9b, 0xbd, 0x6f, 0xe0, 0x06, 0xd9, 0xe3, - 0x65, 0x62, 0x67, 0x84, 0xe6, 0x44, 0xfe, 0xee, 0x9d, 0x13, 0xf0, 0x14, 0x0e, 0xb8, 0x7a, 0x7a, - 0x81, 0x4d, 0x7f, 0xa4, 0x4d, 0x57, 0xa5, 0x57, 0x84, 0x4d, 0xef, 0x65, 0xe4, 0x21, 0x61, 0xf1, - 0x3a, 0xb3, 0xd7, 0x2c, 0xd4, 0x0b, 0xa6, 0x5b, 0xb3, 0x2e, 0x04, 0x57, 0xaa, 0xdc, 0x43, 0xca, - 0x19, 0xaa, 0x82, 0xa2, 0x65, 0x8a, 0xf9, 0x0e, 0xd5, 0x94, 0x35, 0xe9, 0xf4, 0x39, 0x0a, 0xe6, - 0xee, 0x88, 0x3a, 0x64, 0x60, 0x53, 0xe5, 0xbd, 0xa7, 0x23, 0xf0, 0x50, 0xfb, 0x12, 0x9d, 0xa5, - 0xe3, 0x35, 0x6c, 0x62, 0xd2, 0xe6, 0x1e, 0x9f, 0xaf, 0xcb, 0xed, 0x48, 0xfa, 0xdf, 0xff, 0xed, - 0x7f, 0x4a, 0x35, 0xea, 0xbb, 0x42, 0x8a, 0x9a, 0x3a, 0xb1, 0x48, 0xfb, 0x74, 0x4b, 0x10, 0x70, - 0x89, 0xbb, 0x95, 0x96, 0x04, 0x82, 0x01, 0x2d, 0x33, 0xf7, 0x93, 0x77, 0xfb, 0x92, 0xc9, 0x3b, - 0x38, 0xaa, 0x17, 0x3e, 0xf5, 0xec, 0xb1, 0xbb, 0xa3, 0xc4, 0x51, 0x06, 0x6f, 0x01, 0x0a, 0x0b, - 0xe7, 0x85, 0x75, 0x8e, 0x16, 0x48, 0xa6, 0xd5, 0xfe, 0x98, 0x93, 0x60, 0x79, 0x46, 0xa3, 0x30, - 0x2f, 0xa8, 0x6c, 0xfe, 0xc4, 0x2d, 0x93, 0x46, 0xf1, 0xe6, 0x13, 0xdf, 0xe7, 0x38, 0x24, 0x0c, - 0x09, 0xd7, 0xd0, 0x9e, 0x43, 0x1b, 0x15, 0x05, 0xa7, 0xd4, 0x90, 0x65, 0xbf, 0x11, 0x33, 0xa8, - 0x28, 0x50, 0x61, 0x0c, 0x18, 0x80, 0xd7, 0xb2, 0x0f, 0xae, 0xdd, 0x06, 0x62, 0x44, 0xbd, 0x59, - 0x09, 0x3c, 0xd6, 0x33, 0x12, 0x65, 0xcd, 0x08, 0xf3, 0x7c, 0x59, 0xd6, 0x3f, 0x7d, 0x33, 0x30, - 0x67, 0xd2, 0x8a, 0xad, 0x98, 0xc4, 0x62, 0x41, 0x1a, 0x1c, 0xc1, 0x2c, 0x58, 0x1d, 0x3e, 0xd1, - 0xea, 0xb2, 0x0a, 0x18, 0xed, 0xe8, 0x72, 0xeb, 0x2c, 0x79, 0x14, 0x2e, 0x2a, 0x0c, 0xce, 0xca, - 0x93, 0x6c, 0x32, 0x5b, 0xc7, 0x61, 0x14, 0xa2, 0xb3, 0xe8, 0x3f, 0x15, 0x6b, 0x81, 0x5e, 0xa5, - 0x05, 0x18, 0x60, 0xe9, 0x84, 0xe4, 0x66, 0xb6, 0xe0, 0x91, 0xb5, 0xa9, 0x66, 0x8a, 0x69, 0xb6, - 0x25, 0xfc, 0xe0, 0x3c, 0x1b, 0x0a, 0xae, 0xea, 0x3d, 0x74, 0x07, 0x1f, 0x16, 0x48, 0x2f, 0x1c, - 0x21, 0x49, 0x03, 0x88, 0x79, 0xcd, 0x86, 0x86, 0x81, 0x03, 0x60, 0x88, 0x0f, 0xcd, 0xd1, 0xb4, - 0x82, 0x69, 0x88, 0x8b, 0x64, 0xec, 0xf1, 0xfe, 0xb2, 0x1e, 0x8b, 0x74, 0xba, 0xd3, 0x00, 0xf0, - 0xa5, 0x5b, 0x06, 0x24, 0xc3, 0xb8, 0xa3, 0xc7, 0x6c, 0x47, 0x41, 0x52, 0x03, 0x84, 0x87, 0xa2, - 0x7c, 0xe2, 0xbf, 0xe3, 0x82, 0x7f, 0x65, 0x93, 0x45, 0xe6, 0xc4, 0xda, 0x54, 0x38, 0x68, 0x2c, - 0xd1, 0xb5, 0xff, 0x7b, 0x4b, 0x06, 0x64, 0x06, 0xca, 0xad, 0xac, 0x30, 0xfd, 0x8e, 0x95, 0x32, - 0x3a, 0xa5, 0x0e, 0xc9, 0x77, 0x10, 0x2b, 0xf5, 0x23, 0xfe, 0x22, 0xb9, 0x6c, 0xeb, 0x1e, 0x62, - 0x01, 0x6b, 0xff, 0x9f, 0x22, 0x55, 0xd6, 0xa1, 0x4d, 0x64, 0x9e, 0xe1, 0x9e, 0xc6, 0x6c, 0x2f, - 0xe6, 0x6e, 0x8a, 0x35, 0x06, 0x6b, 0x9b, 0x58, 0x6c, 0x33, 0xb3, 0x8a, 0x05, 0x62, 0xcf, 0xb3, - 0x2f, 0x4b, 0x34, 0x79, 0x26, 0x66, 0x93, 0xca, 0x0d, 0x56, 0x46, 0x93, 0x67, 0x8a, 0x17, 0x5c, - 0xf4, 0x04, 0x86, 0xd9, 0x73, 0x11, 0x16, 0xe1, 0x74, 0x85, 0xbc, 0xf7, 0xf3, 0xea, 0x4e, 0x8a, - 0xc7, 0x59, 0xcd, 0x5f, 0xf0, 0xfb, 0x32, 0x9a, 0x9a, 0x95, 0xd1, 0x72, 0x9e, 0xf1, 0x9a, 0x2b, - 0x94, 0x77, 0x1a, 0xe9, 0xcb, 0x25, 0x7f, 0x2b, 0xa1, 0x5a, 0xa5, 0x1c, 0x27, 0x95, 0x45, 0xbc, - 0xd9, 0x06, 0x15, 0xc6, 0xac, 0x98, 0xb3, 0xc8, 0xf2, 0x5c, 0x50, 0x71, 0x63, 0x54, 0x9c, 0x29, - 0x8d, 0xc1, 0xd9, 0x06, 0x2b, 0x8b, 0xae, 0x42, 0xc8, 0xe2, 0x0c, 0xd7, 0xa2, 0x3c, 0x74, 0x3d, - 0x8b, 0x84, 0x9a, 0x14, 0x0d, 0xad, 0x9e, 0x94, 0x6b, 0x5e, 0x02, 0x61, 0xa2, 0xa0, 0x16, 0xd8, - 0x2a, 0x0b, 0xdc, 0x91, 0x51, 0xe4, 0x2c, 0x0b, 0x5c, 0x06, 0x89, 0x7d, 0x4e, 0xc6, 0xe6, 0xdc, - 0x89, 0x3e, 0xe0, 0x0a, 0x45, 0x98, 0xe3, 0xf5, 0x9d, 0x20, 0x77, 0x74, 0x2c, 0xed, 0x04, 0xea, - 0xef, 0x87, 0xb4, 0xec, 0xc3, 0x7a, 0x9d, 0x4d, 0x04, 0x61, 0x40, 0x13, 0x80, 0x6d, 0x47, 0x9a, - 0x70, 0xc3, 0xc3, 0xb3, 0x1d, 0x9c, 0x1c, 0x58, 0x4c, 0x71, 0x23, 0x0f, 0x55, 0x52, 0x33, 0x5c, - 0x89, 0x26, 0x61, 0xde, 0x1c, 0xb0, 0xdd, 0x07, 0xc2, 0x1c, 0xe0, 0xde, 0x32, 0xa9, 0xc6, 0xa6, - 0x45, 0x78, 0x1b, 0x90, 0xc2, 0x4a, 0x00, 0xe0, 0x64, 0x42, 0x7d, 0x9c, 0xe1, 0x92, 0x8e, 0x30, - 0xb1, 0xb0, 0x75, 0xa7, 0xe1, 0xc0, 0xda, 0x2a, 0x69, 0xc5, 0x82, 0x72, 0x94, 0x3a, 0x25, 0xa6, - 0xa1, 0x64, 0x3b, 0x1f, 0xdb, 0x4a, 0x8a, 0xbc, 0xcc, 0x90, 0x06, 0x75, 0xcc, 0x2c, 0xaf, 0x61, - 0x51, 0xa7, 0x64, 0x1a, 0xca, 0x98, 0xa0, 0x39, 0x1d, 0xcd, 0x67, 0x42, 0xe7, 0xbd, 0x03, 0xbc, - 0x2b, 0x60, 0x3f, 0x90, 0x0f, 0x8f, 0x26, 0x30, 0x7f, 0x0b, 0x7d, 0x32, 0xb2, 0xc7, 0x76, 0x3a, - 0xad, 0x63, 0x5b, 0xe5, 0xb4, 0x04, 0x1d, 0x97, 0xa3, 0xa1, 0x80, 0xfb, 0x7e, 0x0a, 0xc2, 0x40, - 0x48, 0x75, 0xe2, 0xdf, 0x4c, 0x37, 0xa6, 0x89, 0xa1, 0xfa, 0x84, 0x18, 0x75, 0xe9, 0x25, 0x27, - 0xc3, 0xdc, 0xb5, 0xc1, 0x08, 0x30, 0x09, 0x4a, 0x37, 0xaf, 0x21, 0xa5, 0x51, 0x7c, 0x38, 0x51, - 0x31, 0xe2, 0x65, 0xf4, 0xe4, 0x08, 0xb2, 0x6d, 0x3e, 0xac, 0x2c, 0xdd, 0x01, 0x7b, 0x0f, 0x72, - 0xb4, 0x00, 0x60, 0xe8, 0xc0, 0x28, 0xae, 0x64, 0x90, 0x04, 0xa7, 0x1f, 0xdc, 0xae, 0x1b, 0x61, - 0xf1, 0x43, 0x25, 0x6b, 0x51, 0xf8, 0x3e, 0x92, 0xec, 0x76, 0xa8, 0x23, 0x84, 0xae, 0x50, 0xbb, - 0x33, 0x13, 0xa2, 0x60, 0x14, 0xc5, 0x43, 0xa1, 0x89, 0xb4, 0x62, 0xa1, 0xed, 0x69, 0xf3, 0x33, - 0xd3, 0xbf, 0x5f, 0xae, 0x52, 0xab, 0x80, 0x56, 0x2e, 0x4b, 0x07, 0x69, 0x08, 0x22, 0x35, 0xc3, - 0x53, 0x3a, 0x74, 0xc6, 0xcc, 0x21, 0xd7, 0xc4, 0xa1, 0x3c, 0xcd, 0x50, 0x82, 0xee, 0xfd, 0x33, - 0xb2, 0x04, 0xe1, 0xfd, 0xa0, 0x0d, 0x33, 0x64, 0xf7, 0x32, 0x66, 0x8b, 0x95, 0x12, 0x16, 0x0a, - 0x4a, 0x3e, 0xc2, 0xb7, 0x90, 0x9e, 0x49, 0xa9, 0x4d, 0x93, 0x7a, 0xd2, 0xe6, 0x66, 0x52, 0x1d, - 0xa7, 0x16, 0xb3, 0x39, 0xc9, 0x22, 0x74, 0x96, 0x21, 0x7c, 0x2f, 0x78, 0x71, 0xcc, 0xb2, 0x4d, - 0x67, 0x59, 0x07, 0x27, 0x51, 0xf9, 0x89, 0xed, 0xe7, 0x68, 0xd2, 0x19, 0x9c, 0x9f, 0x57, 0x02, - 0x83, 0x18, 0x5d, 0xf3, 0xb6, 0x2c, 0x61, 0xd9, 0x1a, 0x5b, 0x27, 0x07, 0xd3, 0x03, 0xdf, 0x31, - 0xb5, 0x41, 0xf8, 0x90, 0x37, 0x0b, 0xb1, 0x30, 0xc3, 0xda, 0x37, 0xcf, 0x76, 0x2b, 0x9b, 0xdc, - 0x2c, 0x53, 0x33, 0x2a, 0x1c, 0xb4, 0x82, 0x29, 0x45, 0xaa, 0x66, 0x44, 0xf6, 0x01, 0xcf, 0x46, - 0xf0, 0xa4, 0x5c, 0x11, 0xe4, 0x04, 0x97, 0x8b, 0xd5, 0xfd, 0x23, 0x8a, 0xca, 0xeb, 0x83, 0xba, - 0xe8, 0x3e, 0x67, 0x70, 0x63, 0x5d, 0x42, 0x78, 0x23, 0x77, 0x09, 0xa5, 0x90, 0x90, 0x35, 0xf9, - 0x58, 0x1b, 0xcd, 0x77, 0x5a, 0xf9, 0x3b, 0xc5, 0xe4, 0x87, 0x84, 0xe4, 0xc8, 0xca, 0x8b, 0x88, - 0x6d, 0x3d, 0x5e, 0x40, 0x4a, 0x22, 0x39, 0x26, 0x2e, 0xe8, 0x65, 0xfc, 0xbc, 0xca, 0x75, 0x89, - 0x4a, 0xcd, 0xac, 0xe0, 0xad, 0xa4, 0xe2, 0x23, 0x86, 0xf1, 0xba, 0xe8, 0xa4, 0xee, 0xea, 0x7d, - 0xc2, 0x23, 0x94, 0x7f, 0x46, 0x84, 0x2e, 0x8e, 0x12, 0x5d, 0x5c, 0xaf, 0x33, 0x91, 0xb9, 0x38, - 0xc2, 0xa8, 0x70, 0x66, 0x5a, 0xc2, 0xe7, 0x30, 0x21, 0x78, 0x16, 0xb2, 0x32, 0x35, 0xaf, 0x51, - 0x15, 0x10, 0xbe, 0xd9, 0x8c, 0x40, 0x64, 0x49, 0x83, 0x7e, 0x0f, 0xbc, 0x0b, 0xd3, 0x8f, 0xd8, - 0x83, 0x45, 0x8d, 0x33, 0x2b, 0xf2, 0x0c, 0x6a, 0x16, 0xf5, 0xe6, 0xd4, 0x5e, 0xce, 0x37, 0x51, - 0xa5, 0x3b, 0x3c, 0x0f, 0xae, 0x8e, 0xc4, 0x6e, 0xb2, 0x50, 0xc2, 0xb9, 0x2d, 0x5c, 0x8d, 0xc0, - 0x19, 0x6b, 0x46, 0x64, 0x9c, 0x62, 0x30, 0x33, 0x31, 0x5d, 0x99, 0xeb, 0x85, 0x32, 0x9e, 0x7d, - 0xdf, 0xb8, 0xd7, 0x9f, 0x01, 0xe8, 0x92, 0xd4, 0x8d, 0x35, 0x2b, 0x9b, 0x1a, 0x84, 0xfe, 0x63, - 0x2c, 0x70, 0xb2, 0xd0, 0x91, 0x17, 0x2d, 0x68, 0xad, 0x74, 0x3f, 0x49, 0x31, 0x28, 0xe4, 0x8d, - 0xd0, 0x28, 0xa3, 0x38, 0x0e, 0xf2, 0xa0, 0x05, 0x97, 0xed, 0xde, 0xa8, 0x94, 0x7b, 0x66, 0x89, - 0xa9, 0xe6, 0x3e, 0x9b, 0x30, 0x03, 0x47, 0xb9, 0x35, 0x8b, 0x82, 0xbb, 0x80, 0x05, 0xed, 0x68, - 0xcd, 0x2d, 0x4b, 0xd0, 0x2c, 0xf6, 0x13, 0x62, 0x7c, 0x9c, 0x88, 0x79, 0xfa, 0xf4, 0xce, 0x70, - 0xd9, 0x80, 0x81, 0x8a, 0xf9, 0x77, 0x2a, 0x24, 0xb6, 0x11, 0xf4, 0xe1, 0x0e, 0xde, 0x55, 0xc1, - 0x17, 0xfd, 0x6b, 0xea, 0x95, 0xe6, 0x3d, 0x22, 0x20, 0x3f, 0x9f, 0xdf, 0x98, 0x07, 0x01, 0x04, - 0x40, 0xce, 0xb2, 0x64, 0x5a, 0x01, 0x07, 0x4a, 0x59, 0x98, 0x0f, 0xfa, 0x85, 0x0e, 0xa1, 0x10, - 0x6b, 0x09, 0xf9, 0x7c, 0x17, 0xdf, 0x96, 0x49, 0x57, 0x8c, 0xe8, 0x8e, 0x4c, 0xea, 0x7d, 0xdb, - 0xa1, 0xef, 0x98, 0xcb, 0xcc, 0x10, 0xc1, 0x2a, 0x8b, 0xd2, 0x4a, 0xcf, 0x0a, 0x60, 0x46, 0xb9, - 0x78, 0xb2, 0xec, 0x78, 0x7d, 0xef, 0x10, 0xae, 0x7e, 0xa9, 0x38, 0xe8, 0x57, 0x7c, 0x66, 0x13, - 0xf7, 0x67, 0xf4, 0x67, 0x66, 0x30, 0xb1, 0xdd, 0x9e, 0xde, 0xc7, 0xb5, 0x1f, 0x18, 0x2f, 0x3d, - 0x3d, 0x46, 0xc0, 0x55, 0x3a, 0x23, 0xc8, 0x56, 0xbf, 0x33, 0xcb, 0xcc, 0xd9, 0xe5, 0xe2, 0xd0, - 0x74, 0xc3, 0x5a, 0x48, 0x02, 0x7b, 0x1c, 0x6b, 0xc3, 0x49, 0x2d, 0x9c, 0x8f, 0x46, 0x24, 0x0c, - 0x57, 0x6b, 0xf3, 0x89, 0x3f, 0xb5, 0x47, 0xe6, 0xb8, 0xa3, 0x53, 0x20, 0xdb, 0x1d, 0x7b, 0x25, - 0x10, 0xcd, 0xc6, 0x4e, 0x77, 0xdc, 0xa2, 0x10, 0x0b, 0x33, 0x70, 0x4b, 0x20, 0xc6, 0xe3, 0x51, - 0x43, 0xdf, 0xa2, 0x10, 0x74, 0x51, 0xab, 0x14, 0xa4, 0xd3, 0xec, 0x34, 0xe3, 0x64, 0x46, 0xa3, - 0x04, 0xa4, 0xd5, 0x6a, 0xc5, 0x7c, 0xb2, 0xa9, 0x34, 0xb7, 0x1d, 0x6b, 0x56, 0x6d, 0x08, 0xe3, - 0xee, 0x6a, 0xc5, 0x19, 0xd2, 0xa3, 0x6f, 0x98, 0x8c, 0x81, 0x66, 0x92, 0x8a, 0x2f, 0x98, 0xe8, - 0x02, 0xbf, 0x92, 0x44, 0x7c, 0x89, 0xb5, 0x4c, 0x20, 0xbb, 0xa2, 0xcf, 0x2c, 0xa8, 0x02, 0x96, - 0xf7, 0x58, 0x2a, 0x07, 0x61, 0x4b, 0x06, 0xab, 0xe4, 0xb9, 0xd7, 0xe0, 0x19, 0x22, 0x98, 0x5d, - 0x65, 0xde, 0x80, 0x35, 0xb9, 0xcc, 0x46, 0x2e, 0x13, 0x4a, 0x16, 0x82, 0xe5, 0x95, 0x78, 0xef, - 0xb1, 0xf7, 0x0c, 0x00, 0x8b, 0x52, 0x57, 0xe9, 0x7b, 0x0f, 0xdf, 0x63, 0x6d, 0x81, 0x41, 0xf7, - 0x8a, 0xce, 0xc4, 0x52, 0xf1, 0x88, 0x35, 0x1a, 0x86, 0x67, 0x25, 0x26, 0x06, 0x33, 0x08, 0x78, - 0x09, 0xb9, 0xa1, 0xaf, 0x4d, 0xf1, 0x8a, 0xbb, 0x6c, 0xb4, 0xd9, 0x32, 0x49, 0xa8, 0x81, 0x43, - 0x88, 0x89, 0x5c, 0xcc, 0x6a, 0x6c, 0x3a, 0x94, 0x83, 0x05, 0x0c, 0x09, 0x9e, 0x45, 0xa7, 0x0d, - 0x39, 0x1a, 0x3e, 0x56, 0x29, 0x04, 0x92, 0x02, 0xa3, 0x71, 0x4c, 0x52, 0x1a, 0x4d, 0x9e, 0xd4, - 0x4e, 0x93, 0xba, 0x34, 0x69, 0x99, 0x42, 0xd1, 0xa6, 0x11, 0x52, 0x48, 0xb6, 0x68, 0x9c, 0x95, - 0xce, 0xcc, 0xa8, 0xae, 0xe8, 0x33, 0x9d, 0x3f, 0xee, 0xb1, 0x14, 0x9e, 0x2d, 0x4c, 0x73, 0x91, - 0x90, 0x7d, 0x9a, 0x9b, 0x24, 0x12, 0xc7, 0xb1, 0xfd, 0xd0, 0x0e, 0xfb, 0x8b, 0x29, 0x58, 0xfb, - 0x1a, 0x5d, 0xbc, 0x03, 0x39, 0x58, 0x04, 0xa6, 0x1f, 0x6b, 0xd9, 0x69, 0xe9, 0x15, 0x7b, 0x41, - 0x97, 0x20, 0x4c, 0x5a, 0xca, 0x2d, 0x36, 0xe6, 0x20, 0x78, 0x5a, 0xac, 0x89, 0xd9, 0xec, 0x21, - 0x89, 0x16, 0xb8, 0x25, 0x2b, 0x99, 0xdd, 0x66, 0xd3, 0x31, 0x3d, 0xda, 0xa2, 0xc8, 0x4d, 0xc1, - 0x79, 0xa3, 0x45, 0x68, 0xd1, 0x70, 0xea, 0x94, 0xac, 0x70, 0x9f, 0x07, 0x08, 0xbf, 0x0f, 0xce, - 0x43, 0x21, 0xab, 0x37, 0xc5, 0x6e, 0xae, 0x8f, 0x93, 0x60, 0x32, 0x34, 0xe9, 0x36, 0x32, 0xf1, - 0x5f, 0x6b, 0x2a, 0xb1, 0x86, 0x87, 0xf0, 0x93, 0x91, 0x60, 0xbb, 0xb8, 0x5f, 0x8c, 0x8d, 0xa4, - 0x3e, 0x13, 0xa9, 0x16, 0xb2, 0x83, 0xcb, 0x12, 0x7d, 0xce, 0xd4, 0x1b, 0x10, 0x1f, 0xf4, 0x1c, - 0xd0, 0x8d, 0x3f, 0x65, 0xf3, 0x7c, 0x2f, 0xb4, 0xd9, 0xe0, 0xe1, 0xb8, 0x63, 0x43, 0x35, 0xf4, - 0xaf, 0xb2, 0x98, 0xd1, 0x03, 0xff, 0x99, 0xbd, 0x2f, 0xec, 0x02, 0x80, 0xf0, 0x7a, 0x52, 0xbd, - 0x99, 0x39, 0x7d, 0x71, 0xf9, 0xc1, 0xc5, 0xf9, 0x8b, 0xda, 0xb6, 0xba, 0x0b, 0xc9, 0x12, 0x24, - 0xbb, 0xb8, 0x34, 0x12, 0x45, 0x7e, 0xaf, 0x5e, 0x5f, 0x2c, 0x16, 0xda, 0xa2, 0xa5, 0x79, 0xc1, - 0xa4, 0xde, 0x04, 0x8d, 0x87, 0x05, 0x65, 0xb6, 0x28, 0x61, 0xc8, 0x2d, 0x5d, 0xe6, 0xd3, 0xf6, - 0xec, 0x99, 0x9d, 0xec, 0xba, 0x31, 0x64, 0x5d, 0xd2, 0xa5, 0x16, 0xfe, 0x93, 0xf7, 0x76, 0x7d, - 0x33, 0x9a, 0x4a, 0x38, 0x3f, 0xd4, 0x91, 0xb6, 0xb4, 0xce, 0xb4, 0xa9, 0xc3, 0x43, 0x83, 0x7f, - 0x37, 0x9b, 0x34, 0x05, 0x17, 0x5c, 0x02, 0xef, 0x0a, 0xd7, 0xff, 0x50, 0x56, 0xc4, 0x6b, 0x8d, - 0x37, 0xd3, 0x4e, 0x12, 0x90, 0x74, 0x23, 0xd3, 0x37, 0x64, 0xda, 0x35, 0xb9, 0x8e, 0xf3, 0xf8, - 0xd7, 0x93, 0xbd, 0x4d, 0x25, 0xa3, 0xda, 0xc4, 0x02, 0x55, 0x0b, 0x08, 0x99, 0xd9, 0x25, 0xb6, - 0x2d, 0x5e, 0x17, 0x2c, 0x7f, 0x4b, 0xd7, 0xe3, 0xb2, 0x19, 0x5e, 0x4d, 0x38, 0xa2, 0xab, 0xa1, - 0x87, 0x5a, 0xc4, 0xb4, 0x40, 0x96, 0x6d, 0x17, 0x2d, 0xb7, 0x2e, 0xd5, 0x3a, 0xfe, 0x0d, 0x7c, - 0xfd, 0xd4, 0xdd, 0x1e, 0xc7, 0x99, 0x19, 0x4f, 0xa1, 0x1a, 0x3a, 0x60, 0x38, 0xa0, 0x42, 0xf1, - 0xa6, 0xd3, 0x11, 0x7e, 0xc3, 0xdf, 0x81, 0x7a, 0xc8, 0xda, 0x62, 0xa5, 0xb5, 0x06, 0xad, 0x52, - 0xc7, 0xfd, 0x9b, 0xe3, 0x76, 0x5c, 0x3e, 0x8f, 0x9a, 0x41, 0x6a, 0x4d, 0x35, 0x03, 0x2e, 0xed, - 0x92, 0x6a, 0x3b, 0xa2, 0x5a, 0x8a, 0x2b, 0x9d, 0xa7, 0x9c, 0x36, 0xd8, 0xd1, 0xec, 0x44, 0x4b, - 0xf5, 0xef, 0xac, 0x8d, 0x6e, 0xdc, 0x13, 0x9a, 0x01, 0x6a, 0x0a, 0x3d, 0x07, 0xfc, 0x26, 0x8a, - 0x62, 0x3f, 0xa7, 0x6f, 0xd6, 0xf7, 0x40, 0xfd, 0x4b, 0x9d, 0x35, 0xa0, 0xf1, 0x12, 0x3f, 0x8e, - 0x7b, 0xf4, 0xde, 0xd0, 0x55, 0xfe, 0x7c, 0x4a, 0x4c, 0xeb, 0xbd, 0xeb, 0x2c, 0x8d, 0x46, 0x9a, - 0x12, 0xe2, 0xe9, 0x66, 0xcb, 0x68, 0x8a, 0x94, 0x33, 0xdf, 0x36, 0x5a, 0xe2, 0xe5, 0xc8, 0xbd, - 0x06, 0x25, 0x65, 0x19, 0xc9, 0x11, 0xa6, 0x3e, 0xdf, 0xc6, 0xc3, 0x1a, 0x5d, 0x51, 0x5f, 0x0a, - 0x8f, 0x0a, 0x67, 0xb6, 0xf2, 0x10, 0xd5, 0x54, 0x56, 0x66, 0x1a, 0x7d, 0x18, 0x97, 0xe9, 0x62, - 0xa5, 0xf6, 0xf3, 0x8a, 0xb0, 0xf8, 0x86, 0xc7, 0x33, 0x6a, 0x89, 0x83, 0x16, 0x91, 0x30, 0xaa, - 0xc8, 0xf8, 0x29, 0x2b, 0x2a, 0xd1, 0xdc, 0xf5, 0x13, 0xd4, 0xe6, 0x43, 0x27, 0xa8, 0xcd, 0xc2, - 0x09, 0x6a, 0x93, 0x9e, 0xa0, 0xd6, 0x5c, 0x65, 0x55, 0x38, 0x2b, 0x66, 0x2a, 0x99, 0x13, 0xe1, - 0x4d, 0xb6, 0x47, 0x7b, 0xa6, 0xe1, 0xf1, 0x1f, 0xdb, 0x52, 0x94, 0x38, 0xff, 0x9e, 0x3f, 0x52, - 0xef, 0x07, 0x64, 0x4f, 0xae, 0x16, 0x8f, 0xcf, 0xa9, 0xf4, 0xd0, 0x66, 0x53, 0xa9, 0xca, 0xbb, - 0x75, 0x0a, 0x11, 0x17, 0x3d, 0x37, 0xdc, 0xa8, 0x1e, 0xd3, 0x3e, 0xe2, 0x43, 0x7a, 0xea, 0x11, - 0xde, 0x88, 0xc6, 0xe6, 0x0e, 0xf8, 0xa9, 0x4d, 0x3c, 0x62, 0x84, 0x09, 0xcf, 0x92, 0x4b, 0x07, - 0x7a, 0xc9, 0x39, 0xce, 0x24, 0x4f, 0xbe, 0x80, 0x14, 0xb9, 0x27, 0x9f, 0x2d, 0x43, 0x18, 0x52, - 0x72, 0x72, 0x47, 0x00, 0x38, 0xc9, 0xfe, 0x3c, 0x9c, 0xe2, 0x39, 0xda, 0x92, 0xa8, 0x36, 0x09, - 0xc5, 0xf8, 0x69, 0xff, 0x94, 0x08, 0xec, 0xbd, 0x88, 0xb4, 0x12, 0x2f, 0x4c, 0xe7, 0xea, 0x7c, - 0x0a, 0xa3, 0x6a, 0xc2, 0x0e, 0xc7, 0x23, 0x1b, 0xc4, 0x79, 0x22, 0x4e, 0x65, 0x9b, 0x2e, 0x7c, - 0x3f, 0x33, 0x35, 0xb7, 0x97, 0x62, 0x21, 0x0e, 0xe9, 0x91, 0x8a, 0xa9, 0xda, 0xfc, 0x50, 0xb4, - 0x38, 0x17, 0x85, 0x6f, 0xb6, 0xe6, 0xe2, 0xe1, 0x3a, 0x16, 0x58, 0x97, 0x34, 0x62, 0x2b, 0x6a, - 0xa4, 0x24, 0x25, 0xe2, 0x38, 0x7f, 0xbe, 0x7b, 0x55, 0x5e, 0xac, 0x20, 0x2c, 0x78, 0x22, 0xb8, - 0x8c, 0xf5, 0x85, 0xb3, 0xe2, 0x31, 0x1e, 0xa2, 0xe2, 0x47, 0x0d, 0xb3, 0x42, 0xf6, 0x50, 0x1b, - 0x36, 0x1e, 0xa9, 0xa3, 0xc7, 0x6e, 0x7d, 0x3c, 0x16, 0x8b, 0x87, 0x83, 0xe9, 0xf9, 0x58, 0x33, - 0x45, 0x9b, 0xd7, 0x7c, 0x62, 0x62, 0x44, 0xf1, 0xa3, 0xf5, 0xdb, 0x4f, 0x9f, 0xda, 0x5a, 0x79, - 0x0b, 0x36, 0xb6, 0x50, 0x38, 0x85, 0x6c, 0x32, 0xd2, 0xdb, 0x7d, 0x9b, 0x9f, 0xfe, 0x0f, 0x9b, - 0x20, 0x36, 0x25, 0x27, 0xd0, 0xe9, 0xa9, 0xe6, 0x67, 0x32, 0x28, 0x18, 0xdf, 0x21, 0x20, 0x4a, - 0x0c, 0xb8, 0x75, 0x2f, 0x30, 0x3d, 0xc7, 0xd2, 0x93, 0x27, 0x01, 0x9e, 0xbf, 0xe1, 0x07, 0xf6, - 0x68, 0xcc, 0x7a, 0xc0, 0xf6, 0x36, 0x54, 0xe4, 0x26, 0x1e, 0x0e, 0x73, 0x8c, 0x7b, 0x4e, 0xbc, - 0xef, 0x1a, 0x6d, 0xfd, 0x59, 0xb3, 0xd7, 0x56, 0x83, 0xfb, 0xa0, 0xea, 0x8e, 0xea, 0xb2, 0x03, - 0xf1, 0x60, 0x85, 0x60, 0x9c, 0x53, 0xbb, 0x03, 0x89, 0x44, 0x63, 0x36, 0xb1, 0x5e, 0x09, 0xaa, - 0x4d, 0x05, 0xcf, 0x8c, 0x36, 0xf4, 0x5f, 0x5c, 0xd5, 0x32, 0x02, 0xf8, 0xf4, 0x58, 0x09, 0x70, - 0xd9, 0x40, 0x36, 0x45, 0xa1, 0x5a, 0xa8, 0xd4, 0x9b, 0x8a, 0x3a, 0xc5, 0x4b, 0x40, 0xf0, 0x64, - 0x07, 0x31, 0x83, 0x53, 0x3c, 0x8b, 0xa7, 0xab, 0xba, 0xca, 0x41, 0x92, 0x5a, 0x01, 0x4c, 0xbb, - 0x31, 0x3c, 0xf8, 0x5c, 0x1a, 0xae, 0x1a, 0x69, 0x43, 0x02, 0xb6, 0xe5, 0x04, 0xea, 0xc4, 0x7b, - 0x30, 0x70, 0x3e, 0x0c, 0xe2, 0x74, 0xdc, 0x4d, 0x61, 0xf3, 0x37, 0x5a, 0x11, 0x14, 0xc1, 0x02, - 0x6a, 0xa8, 0x5a, 0x79, 0x28, 0x7a, 0x4a, 0x08, 0x0f, 0xfd, 0xc8, 0x6a, 0xd3, 0x30, 0x9c, 0x67, - 0xf9, 0x32, 0xd5, 0x86, 0xd6, 0x01, 0x9c, 0x75, 0x75, 0x0b, 0x3e, 0x5b, 0xbf, 0xb8, 0x4a, 0xaf, - 0x90, 0xdf, 0xe4, 0xf9, 0x1d, 0x9e, 0x9f, 0xaf, 0x1b, 0x37, 0xef, 0xdf, 0x57, 0x2f, 0x60, 0x54, - 0x85, 0x52, 0xb4, 0xf6, 0xad, 0x3b, 0x6b, 0x17, 0x50, 0x1d, 0xf6, 0x5f, 0x59, 0xef, 0x33, 0xb0, - 0xc8, 0xa0, 0x35, 0x56, 0x65, 0xb4, 0x9d, 0x18, 0x07, 0xca, 0x79, 0x4c, 0x86, 0x0e, 0x58, 0x5e, - 0x4c, 0x43, 0x09, 0x18, 0xa0, 0x77, 0x6b, 0xc8, 0x7c, 0x57, 0x06, 0x07, 0xc4, 0x35, 0xfe, 0xca, - 0x5d, 0x52, 0x85, 0x24, 0xaf, 0x0a, 0x5c, 0xba, 0x88, 0x03, 0x76, 0x0a, 0xb5, 0x43, 0x69, 0x23, - 0xb9, 0x4e, 0x74, 0x79, 0xb1, 0x46, 0x13, 0x1e, 0x9a, 0xbc, 0x0f, 0x6b, 0x84, 0x22, 0xcb, 0xb5, - 0x82, 0x2d, 0xda, 0x7b, 0x70, 0x4d, 0x90, 0xb2, 0x94, 0xba, 0x54, 0x9a, 0x47, 0x86, 0x5e, 0xb8, - 0xff, 0xc2, 0xa1, 0xd7, 0x5d, 0x24, 0xba, 0x0e, 0xd2, 0xec, 0xdd, 0xa0, 0x6f, 0x43, 0x1a, 0x1d, - 0x66, 0x01, 0x9a, 0xc1, 0x70, 0x61, 0xe3, 0xa9, 0xc7, 0x92, 0x0e, 0x26, 0x97, 0x63, 0x8c, 0xbe, - 0x2a, 0xab, 0x11, 0x6e, 0xc0, 0xd0, 0x7b, 0x50, 0x64, 0x6b, 0x5b, 0x6d, 0x6c, 0xb5, 0xd4, 0x8e, - 0xfe, 0xb5, 0x4f, 0x37, 0x86, 0xf5, 0x69, 0x56, 0x03, 0xb3, 0x9a, 0x0d, 0xc8, 0x6b, 0xed, 0xa8, - 0xed, 0x9d, 0x5c, 0x5e, 0x13, 0xf3, 0x1a, 0x9d, 0x2e, 0x94, 0x51, 0x9b, 0xed, 0xae, 0xc8, 0xb3, - 0x98, 0xb6, 0xa6, 0x99, 0x3b, 0x4d, 0xb5, 0xbd, 0xad, 0xb6, 0xb6, 0xbf, 0xc6, 0xd9, 0xee, 0x5f, - 0x52, 0x37, 0xfe, 0xe7, 0x55, 0xf0, 0x45, 0xff, 0x1a, 0xab, 0xf8, 0xdd, 0xe0, 0xdf, 0x4d, 0xfa, - 0x6d, 0x7e, 0x19, 0x55, 0x3b, 0x5f, 0x63, 0xe5, 0x92, 0xca, 0x7c, 0xc5, 0xae, 0x6a, 0x1d, 0x05, - 0x78, 0x5d, 0x14, 0x7e, 0x1c, 0x16, 0x3a, 0x55, 0x41, 0xc8, 0x9c, 0x3f, 0xff, 0x24, 0xbb, 0x46, - 0xe3, 0xe9, 0xd3, 0x36, 0x4a, 0x5f, 0x85, 0xf0, 0x32, 0x5e, 0xaf, 0x99, 0x7f, 0xaf, 0x6e, 0xff, - 0xe2, 0xf6, 0x32, 0xaf, 0xc8, 0xad, 0x48, 0x33, 0x83, 0x51, 0x32, 0x64, 0xb4, 0x36, 0x95, 0xf0, - 0x26, 0xbb, 0xeb, 0xe2, 0xe4, 0x48, 0xb0, 0xae, 0x72, 0x87, 0x20, 0xfe, 0x2d, 0x72, 0xa8, 0xf2, - 0xd6, 0xab, 0x6e, 0xbd, 0x0d, 0x66, 0xb2, 0x5a, 0x8d, 0xe3, 0xf4, 0x14, 0x6d, 0xc1, 0x5c, 0xe0, - 0xf9, 0x55, 0xc6, 0x5d, 0x66, 0x78, 0x19, 0x17, 0xe9, 0xfe, 0x5b, 0xb9, 0xc7, 0xb5, 0x30, 0xbd, - 0x42, 0x07, 0x12, 0x40, 0xc1, 0xdb, 0x18, 0x50, 0xe1, 0x69, 0x7a, 0x0a, 0xe5, 0xce, 0x67, 0x43, - 0xb4, 0xd2, 0x19, 0xb8, 0x63, 0x9a, 0xb4, 0x06, 0x99, 0xdc, 0x73, 0x93, 0x85, 0x3d, 0xe0, 0x89, - 0x6b, 0xd0, 0x01, 0xee, 0x8c, 0xcf, 0x81, 0x9e, 0x62, 0xca, 0x1a, 0x1c, 0x3f, 0xb4, 0x97, 0x05, - 0xdc, 0xa7, 0x49, 0x6b, 0x90, 0xfc, 0x68, 0x5a, 0x16, 0x92, 0xed, 0x88, 0x58, 0x83, 0xf4, 0x03, - 0x6f, 0x82, 0x67, 0x19, 0x72, 0xb0, 0x27, 0x3c, 0x71, 0xbd, 0x5f, 0x26, 0xb8, 0x92, 0x79, 0xd8, - 0x03, 0x9a, 0xb4, 0x0e, 0x09, 0x2a, 0xdb, 0x6a, 0x3d, 0xcf, 0x83, 0xb2, 0xb4, 0x35, 0x58, 0x1a, - 0xb6, 0xe6, 0xc9, 0x8f, 0x29, 0x59, 0xb8, 0x64, 0x60, 0xa4, 0x30, 0x99, 0xec, 0x38, 0x66, 0x0e, - 0xad, 0x48, 0xa2, 0x47, 0x08, 0xa3, 0x60, 0x4e, 0xb7, 0x29, 0x11, 0xee, 0x5e, 0x5c, 0xf3, 0x4c, - 0x83, 0x3b, 0x4b, 0xb8, 0xb4, 0x4e, 0x2f, 0x05, 0xa1, 0x6f, 0x60, 0xf3, 0x6d, 0xab, 0x82, 0xe6, - 0x97, 0x3e, 0x90, 0xd4, 0x59, 0x4e, 0x4f, 0xc5, 0x1b, 0x69, 0xe2, 0xb3, 0x5c, 0x95, 0x58, 0xba, - 0x2a, 0x83, 0x83, 0x99, 0x4f, 0xb5, 0xad, 0xde, 0xe3, 0xc0, 0xaa, 0xf2, 0x4f, 0xe0, 0x9c, 0xc6, - 0xcc, 0x7d, 0x3b, 0x06, 0xbc, 0x9a, 0xd4, 0x2f, 0xcb, 0xa0, 0x20, 0x5c, 0x80, 0x7c, 0xc9, 0xc0, - 0x7b, 0x76, 0xc9, 0x36, 0x90, 0xb1, 0xe5, 0x87, 0x4c, 0x4f, 0x4c, 0x25, 0x4e, 0x56, 0x35, 0x7e, - 0xce, 0x13, 0x40, 0x4b, 0x97, 0xb4, 0x72, 0xc9, 0xf4, 0x18, 0x63, 0xcc, 0x77, 0x9f, 0x5d, 0xf6, - 0x2e, 0x33, 0xf7, 0x3a, 0xad, 0x57, 0x9d, 0x2c, 0x8f, 0x95, 0xd4, 0x7c, 0x7f, 0xbb, 0xe2, 0xcc, - 0x69, 0x79, 0xf3, 0xe9, 0x01, 0xd1, 0x4b, 0x35, 0x77, 0xcd, 0x94, 0x1d, 0x67, 0x5d, 0xfc, 0x02, - 0x79, 0x48, 0xfe, 0xd0, 0x35, 0x8b, 0x54, 0x24, 0x43, 0x5a, 0x43, 0xfc, 0x77, 0x2b, 0x09, 0x5a, - 0xfa, 0xcc, 0x00, 0x14, 0x24, 0xc0, 0x04, 0x9f, 0xff, 0x77, 0x7e, 0xef, 0x8f, 0x7c, 0xfe, 0x1c, - 0x4f, 0x7d, 0x52, 0x49, 0x41, 0xcf, 0x1d, 0x6c, 0x98, 0x9d, 0x6f, 0x88, 0x9d, 0xe6, 0xfe, 0x79, - 0x25, 0x2e, 0x45, 0x28, 0x32, 0x56, 0x89, 0xc5, 0x89, 0xef, 0x4b, 0x25, 0xeb, 0xa2, 0x33, 0x1e, - 0xdb, 0xe0, 0xdc, 0xa9, 0x25, 0x44, 0x80, 0x76, 0x72, 0x67, 0x60, 0xb1, 0x76, 0x46, 0x35, 0x1e, - 0x18, 0x08, 0x54, 0xcb, 0x0a, 0x2b, 0x40, 0x99, 0xa2, 0x9c, 0xf2, 0x7b, 0x31, 0x68, 0x10, 0xd0, - 0xac, 0x94, 0x15, 0xea, 0x3d, 0x0e, 0xee, 0x8b, 0xf9, 0x15, 0x70, 0x2e, 0xb6, 0x0b, 0xae, 0x3f, - 0x1f, 0xc3, 0x4f, 0x8c, 0x75, 0x8e, 0x83, 0xd3, 0x5b, 0xc6, 0x9d, 0x75, 0xa1, 0xfa, 0x3d, 0xdd, - 0x9b, 0xe3, 0x02, 0x4c, 0xca, 0xa8, 0xc4, 0x82, 0x27, 0xf7, 0xd8, 0xa4, 0x4d, 0xaf, 0x05, 0x04, - 0x64, 0x3d, 0x16, 0x2c, 0xb2, 0xd7, 0x05, 0x97, 0x16, 0xda, 0xc3, 0x8b, 0x76, 0xb2, 0xb4, 0x12, - 0xe7, 0x81, 0xc1, 0xaf, 0xc4, 0x1b, 0xaa, 0x2e, 0x8e, 0x8c, 0x2f, 0x59, 0xd5, 0xf0, 0x35, 0x1b, - 0x81, 0xe5, 0xef, 0x72, 0x49, 0x2e, 0x57, 0xe1, 0x94, 0x2b, 0x1b, 0xbc, 0xeb, 0x82, 0x06, 0x32, - 0x86, 0x57, 0x43, 0x9c, 0x9d, 0x0c, 0x8e, 0xc1, 0x49, 0xb7, 0x13, 0x31, 0x7b, 0xc6, 0x2e, 0x8e, - 0xc8, 0x50, 0x2d, 0x2f, 0x78, 0x06, 0xb0, 0x4b, 0x80, 0x08, 0x79, 0xb1, 0x93, 0x43, 0xc8, 0x8a, - 0xc0, 0xe5, 0x80, 0x9d, 0x4e, 0x6c, 0xf2, 0x9b, 0x3a, 0x08, 0xc3, 0xc3, 0x34, 0x12, 0xe5, 0x87, - 0x57, 0x16, 0x01, 0x00, 0xca, 0x62, 0x61, 0x67, 0xa7, 0xcc, 0x4f, 0x36, 0xc2, 0x30, 0x30, 0xff, - 0xfc, 0x13, 0x88, 0x34, 0x3a, 0xcc, 0xa4, 0xa9, 0xa5, 0x35, 0x64, 0xef, 0x18, 0x41, 0x11, 0x31, - 0xd3, 0xed, 0xa0, 0x06, 0xc9, 0xdd, 0x3e, 0x23, 0x30, 0x4a, 0xaa, 0x11, 0x98, 0x15, 0x38, 0x59, - 0x32, 0xa9, 0x90, 0x8f, 0xbe, 0xd6, 0x94, 0xab, 0xba, 0x36, 0xfe, 0xe8, 0x38, 0x86, 0x61, 0x84, - 0x63, 0xf0, 0x7b, 0x08, 0x40, 0x0b, 0x60, 0xf7, 0x9f, 0xe5, 0xfa, 0xc1, 0x2a, 0xea, 0x95, 0xd6, - 0x90, 0x9d, 0x2a, 0x11, 0x7a, 0x81, 0x17, 0x48, 0xb5, 0x40, 0xf5, 0xfe, 0xa2, 0x28, 0x92, 0x8c, - 0xb5, 0x62, 0x60, 0xd6, 0xeb, 0x4f, 0x0c, 0x49, 0xc7, 0xa5, 0x26, 0x7e, 0x2f, 0x90, 0xa4, 0x6f, - 0x00, 0x50, 0xe1, 0xba, 0x11, 0x0e, 0x8c, 0x33, 0x36, 0x05, 0x49, 0xe4, 0x39, 0xe9, 0x1c, 0x0a, - 0x78, 0xbc, 0xe6, 0x2e, 0x4f, 0x16, 0x37, 0xb1, 0x98, 0x78, 0x03, 0xdc, 0xba, 0x02, 0xc8, 0x0d, - 0x7a, 0x76, 0x99, 0xd3, 0xdd, 0x50, 0x78, 0x49, 0x1e, 0x17, 0x91, 0xa2, 0xfe, 0xe2, 0xf0, 0x12, - 0xcf, 0xc6, 0xe3, 0x22, 0x39, 0x45, 0x86, 0xf3, 0x43, 0x3c, 0x4f, 0x51, 0x13, 0x4d, 0x62, 0xe6, - 0xd5, 0x08, 0xbf, 0xab, 0x6b, 0x4d, 0xb8, 0x93, 0x92, 0x58, 0x0b, 0x1e, 0x2a, 0xcc, 0x03, 0xe2, - 0x75, 0x27, 0x15, 0x96, 0xa1, 0xa4, 0xd3, 0x0e, 0x14, 0xf5, 0x8a, 0xb0, 0xec, 0xb2, 0x5c, 0xcd, - 0x5d, 0xd5, 0xd6, 0x29, 0x5c, 0xd5, 0x96, 0x9f, 0xad, 0x00, 0xd3, 0x25, 0x0b, 0x51, 0x92, 0x65, - 0xd5, 0xc6, 0x1b, 0x6e, 0x84, 0x34, 0x17, 0xea, 0x07, 0x7e, 0x18, 0x49, 0x7f, 0xfe, 0x0e, 0x71, - 0x66, 0x93, 0x45, 0x97, 0x60, 0x70, 0x62, 0x49, 0x66, 0x16, 0xa1, 0xc7, 0xd5, 0x68, 0xa1, 0xe9, - 0x18, 0x0c, 0x78, 0x0e, 0xec, 0xcb, 0x1d, 0x70, 0xaa, 0xf4, 0xbd, 0x19, 0x5f, 0x2f, 0xb1, 0xd3, - 0xaa, 0x1c, 0x13, 0x7a, 0x6d, 0x18, 0x50, 0xcf, 0xae, 0x12, 0x96, 0x24, 0x2e, 0x31, 0xe4, 0x4d, - 0x0b, 0x95, 0xd1, 0x93, 0xd6, 0xac, 0x3d, 0x3a, 0x3d, 0x92, 0xa0, 0x3b, 0x27, 0xb4, 0x16, 0x79, - 0x67, 0x74, 0x0e, 0xae, 0xd2, 0xea, 0x2a, 0x5a, 0x88, 0x73, 0xa7, 0x95, 0x26, 0x38, 0x1b, 0x97, - 0xfd, 0x9c, 0xe6, 0x4d, 0xaf, 0xb1, 0xca, 0x5c, 0xbc, 0x76, 0xb9, 0xca, 0xdb, 0x13, 0x28, 0xd6, - 0x5b, 0x41, 0x38, 0x14, 0x43, 0x2f, 0x08, 0x7e, 0x44, 0x10, 0x15, 0x5c, 0x2a, 0x89, 0xab, 0x98, - 0x75, 0xf0, 0x25, 0x78, 0x06, 0xdd, 0x95, 0xf1, 0x1f, 0xcb, 0xe5, 0xe4, 0x12, 0x9a, 0x78, 0x1c, - 0xc2, 0xa2, 0x95, 0x7c, 0x78, 0xb0, 0xde, 0xce, 0xff, 0xf7, 0xf8, 0x30, 0x7b, 0x66, 0xbb, 0xeb, - 0x99, 0x90, 0x88, 0x59, 0xe6, 0x4d, 0x49, 0x96, 0x79, 0x13, 0xcb, 0xf7, 0x38, 0x8a, 0x3f, 0x38, - 0xca, 0x39, 0xcf, 0x8a, 0x61, 0xda, 0x77, 0x71, 0xad, 0xe0, 0x88, 0xde, 0x47, 0xcf, 0xea, 0x5f, - 0xa0, 0x68, 0xd2, 0xf7, 0xec, 0xf1, 0x11, 0x16, 0x75, 0xce, 0xe8, 0x4d, 0x36, 0x82, 0xa7, 0x3f, - 0xee, 0x98, 0x70, 0x33, 0xb4, 0xa6, 0xcb, 0xaf, 0x9b, 0x45, 0x27, 0x14, 0x2f, 0x8b, 0x13, 0x97, - 0x79, 0x42, 0x70, 0x85, 0x9e, 0x8a, 0x45, 0x20, 0x4a, 0x07, 0x0e, 0x02, 0x99, 0x8c, 0x5a, 0xc3, - 0x10, 0x21, 0x57, 0x46, 0x8c, 0xa9, 0xcf, 0x62, 0xd9, 0x21, 0xbe, 0x5a, 0x78, 0xf5, 0xa0, 0x72, - 0x37, 0xdb, 0xf2, 0x77, 0x76, 0xee, 0x6a, 0xad, 0xd6, 0xb3, 0x5a, 0xa3, 0x57, 0x48, 0xec, 0x76, - 0x9f, 0xe9, 0xbd, 0x46, 0xc2, 0xc5, 0x5c, 0x04, 0xfd, 0x1f, 0xc5, 0xc2, 0x7b, 0x19, 0x48, 0xa5, - 0x5a, 0xe7, 0x22, 0x0c, 0xe2, 0xf6, 0x7d, 0x2c, 0x2d, 0x75, 0x90, 0x83, 0xeb, 0x87, 0xc6, 0xf0, - 0xfd, 0xfc, 0x0e, 0xe7, 0x7e, 0xaa, 0x41, 0x53, 0x10, 0xe5, 0x9e, 0x50, 0x08, 0x9a, 0x2c, 0x88, - 0x83, 0x9d, 0x75, 0x88, 0x94, 0xbf, 0x38, 0xd8, 0xf2, 0xf3, 0x17, 0xff, 0x57, 0xf8, 0xf4, 0x48, - 0xd5, 0x75, 0x77, 0x88, 0x97, 0xd1, 0x44, 0x77, 0x50, 0x83, 0xee, 0xf0, 0x11, 0x5d, 0xce, 0x4f, - 0xc4, 0x7c, 0x57, 0x97, 0xd7, 0x6c, 0x41, 0x81, 0x06, 0xff, 0x51, 0x86, 0xa1, 0xd8, 0x0c, 0xbb, - 0xb5, 0xec, 0x07, 0x1a, 0x7a, 0x38, 0xf6, 0xe7, 0x97, 0x57, 0xfd, 0xb0, 0xe2, 0x1a, 0x57, 0x6c, - 0xe1, 0x9c, 0xd9, 0xb8, 0x90, 0x31, 0x88, 0xd8, 0xaf, 0x0f, 0x90, 0x8a, 0xcc, 0x2e, 0xca, 0x0a, - 0x59, 0x6c, 0x6f, 0x2a, 0x34, 0xfa, 0x33, 0xc5, 0x7d, 0x95, 0xaa, 0xac, 0xac, 0xe9, 0x28, 0x1a, - 0xa5, 0x98, 0x62, 0xe9, 0x2b, 0x9d, 0x49, 0xa6, 0x57, 0xa2, 0x9a, 0x4a, 0x64, 0xac, 0x8d, 0x07, - 0xbc, 0xa7, 0x1a, 0xe7, 0x1f, 0x93, 0xcb, 0x3a, 0x33, 0x61, 0x5b, 0x2e, 0x0e, 0x36, 0xf8, 0xfd, - 0x88, 0x24, 0x53, 0x6d, 0xc4, 0xaa, 0x2d, 0x44, 0xcb, 0xb9, 0x8b, 0xbf, 0xc0, 0x97, 0x81, 0xea, - 0x91, 0x5d, 0x71, 0x72, 0xf1, 0xd7, 0x65, 0x9c, 0x0f, 0x00, 0xe3, 0xfb, 0x83, 0xad, 0x64, 0x28, - 0x6b, 0x9c, 0x1e, 0xca, 0xdd, 0xe1, 0xc4, 0x83, 0x41, 0xc3, 0xbd, 0x16, 0xc4, 0xc6, 0xf5, 0xc7, - 0x12, 0xfa, 0xab, 0x69, 0xd3, 0x99, 0xa0, 0x82, 0xc6, 0x44, 0x0f, 0x16, 0xe8, 0xe7, 0x54, 0x98, - 0xe8, 0xe0, 0x77, 0x99, 0x0e, 0xbd, 0xc4, 0x72, 0x34, 0x7a, 0x4d, 0xa5, 0xb8, 0x26, 0xc9, 0x5a, - 0xca, 0x25, 0x6e, 0x26, 0x28, 0xf5, 0xbe, 0xc8, 0xc4, 0x46, 0xd4, 0xe4, 0xdb, 0x05, 0xc1, 0x7b, - 0xce, 0xac, 0x00, 0xbe, 0xbe, 0x6e, 0x26, 0x8a, 0xad, 0x38, 0x85, 0xfa, 0x57, 0x54, 0x9b, 0x98, - 0xa3, 0xbd, 0xc7, 0x1b, 0xba, 0x7f, 0x30, 0x26, 0x93, 0xbc, 0x7b, 0xb8, 0x9c, 0xcd, 0x9e, 0xf7, - 0x12, 0x27, 0x35, 0x3f, 0x83, 0xfb, 0x57, 0x10, 0x65, 0xd3, 0xc3, 0x3f, 0xa4, 0x81, 0x76, 0xeb, - 0xac, 0x30, 0xa0, 0x75, 0xcf, 0x3c, 0x5f, 0xbe, 0x28, 0x8b, 0xf6, 0x2a, 0xeb, 0x89, 0x9a, 0x4b, - 0x16, 0xe8, 0x53, 0xa8, 0x8c, 0x87, 0x85, 0x0a, 0x95, 0xc7, 0x68, 0xe9, 0xdc, 0x0c, 0xf4, 0xf7, - 0x3b, 0xee, 0x06, 0xbb, 0xa4, 0x95, 0x07, 0x7f, 0x4c, 0x2f, 0xe1, 0x5a, 0x6f, 0x2e, 0xea, 0xb5, - 0x33, 0xf7, 0xd2, 0xad, 0x13, 0x45, 0xc5, 0x2a, 0x6c, 0xa8, 0x82, 0xdd, 0x9e, 0xa2, 0xae, 0x4d, - 0x7c, 0x31, 0xfd, 0x81, 0x50, 0x02, 0x12, 0x7f, 0x39, 0x06, 0xef, 0xf2, 0x8c, 0x02, 0x39, 0x8d, - 0xf8, 0xed, 0xd2, 0x59, 0x33, 0xa6, 0xd3, 0x04, 0x96, 0x53, 0x80, 0xa7, 0x6b, 0xd1, 0x76, 0x32, - 0x47, 0x8d, 0xe8, 0xaa, 0xd9, 0x9b, 0xf3, 0x6c, 0x86, 0x55, 0x94, 0x51, 0x62, 0xc2, 0x26, 0xda, - 0xf4, 0x58, 0x2b, 0x55, 0x8d, 0xc5, 0x49, 0x1c, 0xdc, 0x2c, 0x50, 0x3e, 0xab, 0x49, 0xcf, 0x9a, - 0x33, 0x62, 0x67, 0x27, 0x38, 0x9d, 0xd4, 0xb1, 0xb4, 0x93, 0x19, 0xcd, 0x27, 0xdf, 0x3d, 0xa3, - 0xc9, 0x26, 0x2d, 0x7a, 0x4e, 0x5e, 0x55, 0xac, 0x68, 0x5e, 0x8f, 0x57, 0x8c, 0xab, 0xed, 0x0f, - 0x4c, 0xdd, 0xad, 0xeb, 0x46, 0x65, 0x7d, 0x1a, 0xa9, 0x30, 0x77, 0xc4, 0x19, 0x96, 0x32, 0x00, - 0xac, 0xcc, 0xda, 0xa1, 0x54, 0xca, 0x23, 0xa1, 0x4a, 0xed, 0xf4, 0x52, 0xdc, 0x64, 0x25, 0x92, - 0xd0, 0x49, 0x37, 0xca, 0x49, 0x33, 0x37, 0xb9, 0x46, 0x0a, 0x1b, 0x62, 0xee, 0x62, 0x2d, 0x96, - 0xa6, 0xb7, 0x9c, 0xe7, 0x4a, 0x47, 0x8a, 0x7a, 0xff, 0xe6, 0x99, 0x48, 0xb5, 0x55, 0x18, 0x3a, - 0x31, 0x33, 0x62, 0xfd, 0xa2, 0x56, 0x4c, 0x94, 0x46, 0x7e, 0x2d, 0xe7, 0xaf, 0x68, 0x8d, 0x1f, - 0xf6, 0x5a, 0x72, 0x37, 0x5a, 0xf2, 0xc5, 0xb9, 0xbc, 0xdb, 0x8d, 0x77, 0x33, 0x77, 0x65, 0x89, - 0x5e, 0x4a, 0x39, 0xf5, 0x1c, 0x8b, 0x04, 0x86, 0x7c, 0x83, 0x5b, 0xf3, 0x7e, 0xa8, 0xe4, 0xf2, - 0x87, 0x4b, 0xde, 0xb2, 0xed, 0x80, 0x7f, 0x57, 0x48, 0x86, 0xe1, 0x16, 0x30, 0x13, 0x89, 0x1b, - 0xd2, 0x9f, 0xe3, 0xb8, 0xc9, 0xa7, 0x7d, 0xd1, 0xbf, 0x52, 0x97, 0x20, 0x97, 0x22, 0x1c, 0x04, - 0xed, 0x06, 0x67, 0xca, 0x96, 0x85, 0x12, 0x8d, 0xb5, 0x12, 0x8d, 0xb4, 0xc4, 0x12, 0x4b, 0xdc, - 0x16, 0x4a, 0x34, 0xd7, 0x4a, 0x34, 0xd3, 0x12, 0xb7, 0x77, 0xc6, 0x73, 0x97, 0x2b, 0xe0, 0x40, - 0x4f, 0x4c, 0xa4, 0xb0, 0xdf, 0x96, 0xe8, 0xea, 0xc5, 0xf0, 0x40, 0x95, 0x80, 0xda, 0x8f, 0x81, - 0xba, 0x7d, 0x18, 0x2a, 0xbe, 0x2c, 0xbd, 0x98, 0x93, 0xee, 0x99, 0xcf, 0x6e, 0x8c, 0x1f, 0x80, - 0x74, 0x39, 0xea, 0x2b, 0xe2, 0xb0, 0x2b, 0x7f, 0xd4, 0x74, 0xa3, 0x7c, 0xbf, 0x7c, 0x6b, 0x3d, - 0xc8, 0x63, 0x25, 0x7b, 0xa5, 0x9b, 0x92, 0xd9, 0xd3, 0xc9, 0xf2, 0x92, 0x77, 0x25, 0x9e, 0x36, - 0xd4, 0x69, 0x73, 0x95, 0x2d, 0x38, 0x15, 0xa5, 0xe8, 0xa6, 0x5b, 0xb1, 0x35, 0xd4, 0xbf, 0x89, - 0x2d, 0xfb, 0x7a, 0x95, 0x4d, 0x6b, 0xc6, 0x74, 0xf6, 0x38, 0xbf, 0xed, 0xba, 0xeb, 0xdf, 0xe4, - 0xd0, 0xc8, 0x5c, 0x51, 0xa8, 0xc4, 0x7c, 0xe2, 0x8d, 0x75, 0x8f, 0xf6, 0xb7, 0x67, 0x47, 0xa6, - 0x63, 0x8f, 0xc4, 0xae, 0x6e, 0x87, 0x8c, 0xd7, 0xab, 0xc8, 0xdd, 0x67, 0xa8, 0xc4, 0x54, 0xd2, - 0xb3, 0xa7, 0x0a, 0x70, 0xe7, 0xc5, 0x23, 0xba, 0x4e, 0xf7, 0x5e, 0x32, 0x3f, 0x3e, 0x5b, 0x5a, - 0x97, 0xf4, 0xc7, 0x16, 0x66, 0x5e, 0xd6, 0xea, 0x2e, 0xe8, 0x4c, 0xa5, 0x2c, 0x53, 0x5c, 0xb4, - 0xa7, 0xc4, 0x66, 0x39, 0x85, 0x69, 0x69, 0x8b, 0x8c, 0xbc, 0x80, 0x1e, 0xab, 0x63, 0x5b, 0xfe, - 0x31, 0x11, 0xef, 0x6e, 0xc9, 0x6c, 0x9e, 0xef, 0x67, 0xcf, 0x59, 0xf0, 0x9d, 0xa6, 0x78, 0x75, - 0xe6, 0x3c, 0x64, 0xfb, 0xd2, 0x1f, 0xd7, 0x9d, 0x98, 0xb9, 0x32, 0xdf, 0x53, 0x2f, 0x4d, 0xca, - 0xee, 0x66, 0x45, 0x29, 0x2b, 0xb6, 0xc6, 0xb6, 0x7c, 0xf3, 0xa5, 0xf0, 0x58, 0xc3, 0x45, 0xb2, - 0x55, 0x96, 0x9f, 0x4d, 0x9d, 0x6e, 0x93, 0xa7, 0xea, 0xf7, 0xb1, 0x82, 0x9d, 0x5c, 0x83, 0xe9, - 0x98, 0x7e, 0x48, 0x7a, 0xe2, 0x81, 0xef, 0xfe, 0xd6, 0x8b, 0xc8, 0xea, 0x09, 0xb2, 0x5c, 0xac, - 0xf8, 0xf6, 0xfa, 0xcc, 0x1e, 0x5f, 0x9d, 0x6e, 0xed, 0xc5, 0xae, 0xe0, 0x85, 0xac, 0x1c, 0x1f, - 0x29, 0xb2, 0x54, 0xf1, 0x34, 0x5d, 0x95, 0x77, 0x57, 0xec, 0xdd, 0x45, 0xb1, 0x14, 0x37, 0x1f, - 0xf1, 0x3d, 0xfe, 0x91, 0xe7, 0xc7, 0x69, 0xf1, 0xcc, 0xe6, 0x7f, 0xec, 0xf7, 0xfa, 0x4e, 0x61, - 0xce, 0x91, 0x84, 0xfd, 0x77, 0x8e, 0x13, 0x8d, 0xed, 0xd1, 0x54, 0xf9, 0x8c, 0xbc, 0xaa, 0xb1, - 0x9f, 0xd5, 0x50, 0x35, 0xbe, 0x41, 0x53, 0x60, 0xda, 0x4c, 0x30, 0xe5, 0x02, 0x97, 0xb9, 0x3d, - 0xf4, 0x3e, 0x79, 0x2c, 0x23, 0x9f, 0xe8, 0x66, 0x27, 0x39, 0x63, 0x41, 0x1f, 0x39, 0x77, 0xf1, - 0x9e, 0x07, 0xe8, 0xaa, 0xe7, 0x39, 0x91, 0xed, 0xaf, 0x92, 0x5d, 0xf4, 0x01, 0x71, 0x4c, 0x3c, - 0xa6, 0xd4, 0x2f, 0xdd, 0xaa, 0xbf, 0xbe, 0x27, 0xda, 0x82, 0x47, 0xc2, 0xe8, 0x9a, 0xd4, 0x26, - 0x89, 0x07, 0xa4, 0xdf, 0x8a, 0x5e, 0xb0, 0x66, 0x43, 0xec, 0xbb, 0x14, 0x3c, 0xe4, 0xe2, 0xda, - 0xd4, 0xf3, 0xbb, 0xfc, 0xb3, 0xc4, 0x4b, 0x3b, 0xb6, 0xae, 0x59, 0xee, 0xd6, 0x24, 0xfd, 0xb5, - 0xd3, 0x1a, 0x59, 0x22, 0x48, 0x45, 0x21, 0x43, 0xfe, 0x27, 0x1d, 0x37, 0x87, 0x40, 0x77, 0x88, - 0x06, 0xfb, 0xb7, 0x35, 0x7a, 0x02, 0xba, 0xd7, 0xe8, 0x27, 0x87, 0x42, 0x3a, 0xff, 0xe8, 0x53, - 0xb9, 0xef, 0x24, 0x87, 0xa2, 0xd8, 0x38, 0xa8, 0x75, 0xb1, 0x0b, 0x9e, 0x6f, 0x8e, 0xb0, 0x77, - 0x7a, 0x3f, 0x02, 0x5b, 0xc0, 0xab, 0xe3, 0x89, 0x92, 0xd6, 0x0a, 0xcb, 0xe9, 0xd2, 0xeb, 0xd1, - 0x63, 0x92, 0x2b, 0x71, 0xf4, 0x02, 0xe2, 0xf4, 0x75, 0x5c, 0xe8, 0x39, 0x15, 0x1c, 0xca, 0xe5, - 0xcd, 0x77, 0xd2, 0x41, 0xc2, 0x68, 0xda, 0x29, 0x8e, 0x1a, 0x2a, 0x4b, 0xfd, 0xfc, 0x1d, 0xb4, - 0x9d, 0x4e, 0x47, 0xa2, 0x98, 0xb2, 0x85, 0xc1, 0xbb, 0x9e, 0x13, 0xb4, 0xd9, 0x39, 0x8f, 0x3b, - 0x99, 0xca, 0x2f, 0xd0, 0x4b, 0xc8, 0xd0, 0x88, 0xcb, 0x36, 0xea, 0x73, 0x7e, 0x65, 0x6f, 0x56, - 0x55, 0xca, 0xf6, 0xcd, 0x27, 0xfb, 0xa9, 0x92, 0x4d, 0xcc, 0x22, 0xc6, 0x7e, 0x4e, 0x66, 0x9e, - 0x9c, 0xee, 0xb7, 0xca, 0xff, 0x18, 0xd7, 0x6a, 0x2d, 0xa3, 0xe2, 0x26, 0xe1, 0x56, 0xc3, 0x30, - 0xf0, 0xa7, 0x40, 0x4a, 0x7e, 0x13, 0x80, 0xbb, 0x57, 0xf6, 0x0c, 0x7f, 0x75, 0x72, 0x66, 0xfa, - 0x72, 0x7a, 0x8a, 0x98, 0x27, 0x42, 0x04, 0x9e, 0x39, 0x7a, 0x0e, 0x01, 0x4c, 0x40, 0x08, 0x2e, - 0x33, 0x89, 0x9b, 0x42, 0xe7, 0xae, 0x7f, 0x35, 0xa1, 0x17, 0x85, 0xd2, 0xac, 0x7f, 0xea, 0x5a, - 0xa3, 0xd3, 0xd5, 0x1a, 0xf5, 0xe1, 0x1c, 0xbc, 0x15, 0x96, 0xc6, 0xc7, 0xbc, 0xf6, 0x0d, 0xa2, - 0xf8, 0x42, 0x4d, 0x78, 0x3d, 0x11, 0x84, 0x2a, 0xf5, 0xc7, 0xd4, 0xc8, 0x6f, 0x0b, 0x0b, 0xeb, - 0xdf, 0xc2, 0x59, 0x5d, 0xce, 0x5f, 0xcb, 0x22, 0x65, 0x7a, 0x56, 0xe7, 0x3f, 0xeb, 0x49, 0xef, - 0xc5, 0xa4, 0x97, 0xac, 0x63, 0x94, 0x20, 0x79, 0xae, 0xe3, 0x99, 0x56, 0xee, 0xcc, 0xb2, 0xf8, - 0xd1, 0x3a, 0x0c, 0x8a, 0x11, 0x68, 0x4f, 0x02, 0x0a, 0xd1, 0xdf, 0x06, 0xfd, 0x3f, 0x8b, 0x12, - 0xf3, 0xcb, 0x33, 0x74, 0x00, 0x00 + 0x2d, 0x7d, 0x30, 0x10, 0xa3, 0x29, 0x19, 0x5d, 0x0d, 0xbd, 0x1b, 0x30, 0x11, 0xc8, 0xd1, 0x5c, + 0x02, 0x3e, 0x11, 0x6b, 0x6f, 0x53, 0xd0, 0x43, 0xb0, 0x0d, 0xe9, 0xc1, 0x9e, 0x2b, 0x59, 0x42, + 0xe1, 0x37, 0x71, 0xf2, 0xc0, 0xf9, 0x7e, 0xcd, 0x43, 0x12, 0xbc, 0x98, 0xbb, 0x67, 0x24, 0x9a, + 0xfb, 0x15, 0x25, 0x36, 0xc3, 0xa5, 0x3b, 0x92, 0xee, 0xe4, 0xc9, 0x8a, 0x11, 0xdb, 0x5c, 0x98, + 0x76, 0x54, 0xa1, 0x9f, 0x0c, 0xb6, 0x22, 0xd7, 0x67, 0x76, 0x38, 0xaa, 0xd3, 0xe6, 0xb4, 0x6f, + 0x21, 0x74, 0x46, 0x51, 0xe8, 0x77, 0x05, 0xd9, 0x11, 0x82, 0x19, 0xac, 0x54, 0xc6, 0x73, 0x77, + 0x84, 0x54, 0xaa, 0x00, 0x95, 0x95, 0x55, 0x00, 0x2d, 0x06, 0x2e, 0x60, 0x1d, 0x4d, 0x35, 0x73, + 0x18, 0x02, 0x75, 0x3c, 0xa5, 0x96, 0xbc, 0x45, 0xf0, 0x16, 0x2b, 0x4a, 0x7f, 0xec, 0x05, 0x15, + 0x6c, 0x33, 0x92, 0xbc, 0xb1, 0x44, 0x94, 0x5c, 0xdf, 0x4c, 0xcb, 0x62, 0x32, 0x50, 0x89, 0x14, + 0x2a, 0x05, 0x91, 0xb1, 0xe2, 0xa2, 0xde, 0x5b, 0xc5, 0x71, 0x3f, 0xd2, 0xf8, 0x9b, 0x36, 0xf4, + 0xcc, 0x00, 0xe8, 0x4c, 0x42, 0xbf, 0xd5, 0x04, 0xbe, 0x27, 0xe9, 0x6e, 0xf0, 0x7e, 0x7c, 0x62, + 0xbb, 0xa1, 0xd1, 0xd6, 0x33, 0xa9, 0xbe, 0xed, 0x9e, 0x03, 0x23, 0x42, 0xe3, 0xcb, 0xd7, 0xa4, + 0x7d, 0x62, 0xe8, 0x7d, 0xb2, 0xbb, 0x5e, 0xb2, 0x4f, 0xaa, 0x55, 0x65, 0xbd, 0xe8, 0x17, 0xf2, + 0xd5, 0xa0, 0x7d, 0x09, 0xbc, 0xb9, 0x6b, 0x55, 0x5a, 0xbf, 0xb0, 0x17, 0xb0, 0xee, 0xde, 0xac, + 0x02, 0xdd, 0xa2, 0xfd, 0x08, 0xc8, 0x88, 0x00, 0x6d, 0x9f, 0x83, 0x0d, 0x87, 0x1e, 0x08, 0x59, + 0x02, 0xbf, 0xe5, 0x08, 0x1c, 0x83, 0xe0, 0xda, 0x74, 0x32, 0x24, 0x53, 0x56, 0x54, 0xc0, 0x85, + 0xa4, 0x28, 0x1a, 0x97, 0x84, 0xa7, 0x4f, 0x47, 0xc9, 0x78, 0x4f, 0x08, 0x33, 0x21, 0x20, 0x66, + 0xc0, 0x62, 0x5a, 0x33, 0x90, 0x51, 0x6d, 0x90, 0xd6, 0x83, 0xf5, 0xb3, 0x5e, 0x7e, 0xd1, 0xd5, + 0x86, 0xda, 0x54, 0x5b, 0x6a, 0xfb, 0x6b, 0xdf, 0x1e, 0x57, 0xc8, 0x17, 0x3d, 0xd7, 0x91, 0x7c, + 0x37, 0x54, 0xdd, 0x30, 0x10, 0x82, 0x15, 0x8e, 0xd8, 0x18, 0x44, 0xaa, 0x30, 0x82, 0xc3, 0x48, + 0x84, 0x2a, 0x80, 0xd5, 0x09, 0x13, 0x81, 0x88, 0xd1, 0x6e, 0x06, 0xe1, 0x35, 0x6a, 0x46, 0x40, + 0x4d, 0xf2, 0x25, 0xaa, 0x76, 0x72, 0xad, 0x36, 0x3b, 0xdd, 0x22, 0x01, 0x4b, 0x7a, 0xed, 0x07, + 0x04, 0x5d, 0xae, 0x7d, 0x6c, 0xba, 0x12, 0xa9, 0x44, 0x89, 0x63, 0xe2, 0x80, 0xd2, 0xe5, 0x12, + 0x5e, 0x21, 0x94, 0x12, 0xba, 0xae, 0xc4, 0x42, 0xa7, 0xac, 0x10, 0x3d, 0xe4, 0xc4, 0x22, 0x54, + 0x98, 0x38, 0x72, 0x65, 0x52, 0x91, 0xa7, 0x51, 0xe4, 0x87, 0x3d, 0xd9, 0x30, 0x8a, 0x23, 0xdc, + 0x0f, 0xbc, 0xc8, 0x1b, 0x79, 0xce, 0x33, 0x79, 0x11, 0x86, 0x72, 0x0f, 0x3e, 0x65, 0x50, 0x87, + 0xbd, 0x7a, 0x5d, 0xae, 0xae, 0x29, 0x03, 0x2f, 0x8c, 0xd0, 0xe5, 0xab, 0xca, 0x75, 0x80, 0x42, + 0x94, 0x43, 0xcf, 0x21, 0x90, 0x3f, 0xa9, 0xc8, 0x0c, 0x05, 0x69, 0x1e, 0x38, 0x32, 0x60, 0xaa, + 0x72, 0x2c, 0xe8, 0x38, 0xfe, 0x48, 0x86, 0x67, 0x1e, 0xf0, 0x36, 0xaa, 0xa4, 0x19, 0xda, 0xd0, + 0x76, 0xcd, 0x60, 0x79, 0x4e, 0xf5, 0x83, 0x19, 0x04, 0xe6, 0x72, 0x38, 0x1f, 0x8f, 0x49, 0x20, + 0x27, 0x00, 0x60, 0x11, 0x48, 0x88, 0xd6, 0xc4, 0x20, 0xc6, 0x1e, 0x76, 0x8c, 0x68, 0xe8, 0x1c, + 0x4a, 0x40, 0xd5, 0xc8, 0x74, 0x47, 0x04, 0x86, 0xcf, 0x00, 0xcb, 0xed, 0xd3, 0x72, 0x82, 0x63, + 0xd8, 0xde, 0x85, 0xed, 0x46, 0xdb, 0x34, 0x8f, 0x97, 0xa1, 0x6c, 0x03, 0xd6, 0x46, 0x09, 0x6b, + 0x49, 0x09, 0x6b, 0xc9, 0xd3, 0xa7, 0xb9, 0xd1, 0x98, 0x23, 0x3f, 0x8e, 0xf0, 0x3c, 0xf5, 0xf9, + 0xbb, 0x68, 0x97, 0x9a, 0x9f, 0x60, 0xb9, 0x8a, 0x8c, 0xd7, 0x67, 0xef, 0x8f, 0x35, 0x1f, 0xfd, + 0x75, 0xd1, 0x7c, 0x0c, 0xf4, 0x03, 0x95, 0xe2, 0x29, 0x2b, 0x06, 0xa8, 0x0a, 0xca, 0x91, 0x20, + 0x00, 0x49, 0x12, 0xb4, 0x43, 0xed, 0x22, 0xd1, 0x24, 0x59, 0xf5, 0x54, 0x51, 0x96, 0x4a, 0x1c, + 0x7e, 0x68, 0xa8, 0x4c, 0x9f, 0x3e, 0xfd, 0x82, 0x0e, 0x3e, 0xe0, 0x28, 0xab, 0x32, 0xa2, 0xc2, + 0x9e, 0x40, 0xee, 0xf0, 0xe1, 0x6b, 0xaa, 0xaa, 0x19, 0xb8, 0x22, 0xba, 0xfb, 0xa4, 0x91, 0x8c, + 0x7c, 0x0f, 0x35, 0x4f, 0x89, 0x4e, 0xf5, 0x34, 0x50, 0xdd, 0x46, 0x04, 0x9f, 0xa8, 0xda, 0x8d, + 0x27, 0x3a, 0x90, 0xe4, 0x59, 0x8e, 0xc7, 0x18, 0x98, 0x60, 0x61, 0x56, 0x4e, 0x32, 0x1d, 0xd0, + 0xbb, 0xd6, 0x52, 0x12, 0xa3, 0x13, 0x10, 0x89, 0x84, 0x91, 0x2b, 0xd1, 0x68, 0x8c, 0x7c, 0x94, + 0x2f, 0x9a, 0x1d, 0x32, 0xfe, 0x44, 0x4a, 0xbe, 0x05, 0x08, 0x43, 0x24, 0x2a, 0x0d, 0xe0, 0x53, + 0x00, 0xda, 0x37, 0x3e, 0x19, 0xe5, 0xea, 0xcd, 0x6b, 0x98, 0x38, 0xce, 0x48, 0x0b, 0xb8, 0x0d, + 0x21, 0x93, 0x95, 0x5c, 0x8d, 0x40, 0x57, 0x9a, 0x43, 0x03, 0x11, 0x18, 0x13, 0xc1, 0x92, 0xca, + 0x27, 0x28, 0x8d, 0x73, 0x7b, 0x46, 0xbc, 0x79, 0x54, 0x61, 0xd4, 0x57, 0x1b, 0x1d, 0x18, 0x49, + 0xa9, 0xdc, 0x02, 0x9b, 0xb2, 0xb5, 0x7b, 0x3e, 0x71, 0x4b, 0x2b, 0xc7, 0x0c, 0xac, 0x31, 0x0b, + 0x4c, 0x79, 0x58, 0x0a, 0xcd, 0xb9, 0x8b, 0x43, 0x39, 0x20, 0x7f, 0xcc, 0x49, 0x18, 0xbd, 0x46, + 0x93, 0x42, 0xe8, 0xc8, 0x7d, 0xbc, 0xed, 0x05, 0xce, 0xa0, 0xe8, 0x41, 0x99, 0x27, 0x25, 0xc3, + 0x9d, 0x8b, 0x60, 0x08, 0xf1, 0x96, 0x3b, 0xb1, 0xc7, 0x30, 0x0a, 0xb8, 0x7e, 0x06, 0xe4, 0x42, + 0x02, 0xea, 0x27, 0xa2, 0xcd, 0xa7, 0x94, 0x64, 0xcd, 0xdb, 0xe1, 0xfb, 0xe1, 0x37, 0xa0, 0x37, + 0xbc, 0x2a, 0x39, 0x2b, 0xc5, 0x92, 0xb5, 0x2b, 0xb2, 0x0c, 0x2b, 0x42, 0xa2, 0x3c, 0xd0, 0x93, + 0xd1, 0x57, 0xd5, 0x05, 0x79, 0x09, 0x7d, 0x07, 0x6c, 0xa7, 0xac, 0xc9, 0x40, 0x55, 0x23, 0xc7, + 0xfd, 0x31, 0x74, 0xe8, 0x83, 0x19, 0x54, 0x5c, 0x18, 0x77, 0xaa, 0xfb, 0xa5, 0xf1, 0x95, 0x0e, + 0xc4, 0x50, 0x59, 0x5d, 0x9b, 0x01, 0xf6, 0xfb, 0xdc, 0x3b, 0x40, 0x7f, 0x00, 0x52, 0x72, 0x8c, + 0xf5, 0x98, 0xa8, 0xc8, 0x5c, 0x99, 0x82, 0xce, 0x8a, 0x40, 0x22, 0x69, 0xcd, 0xc2, 0xf1, 0x03, + 0x90, 0x38, 0xe6, 0xf4, 0x4a, 0x35, 0x27, 0x1d, 0xfd, 0xa9, 0xbb, 0x48, 0x15, 0x54, 0x24, 0x5d, + 0x1c, 0x1d, 0x9f, 0x6f, 0xff, 0xfe, 0x6e, 0xf0, 0xc9, 0x68, 0x76, 0x3a, 0x2a, 0xbe, 0x35, 0xba, + 0xf4, 0xb5, 0xdb, 0xe9, 0xb4, 0x3a, 0x7d, 0x61, 0x31, 0x24, 0xd4, 0x08, 0x24, 0x31, 0xe3, 0x89, + 0xa7, 0x08, 0xce, 0xd1, 0xa1, 0x43, 0xf0, 0x71, 0x7f, 0x49, 0x21, 0xe2, 0xa4, 0xc4, 0xe8, 0xb0, + 0xac, 0x00, 0xf3, 0x46, 0x78, 0x99, 0x3c, 0xfc, 0xc1, 0x21, 0x73, 0x15, 0x18, 0x05, 0xef, 0x28, + 0x01, 0xb6, 0x9f, 0x57, 0x49, 0x34, 0x18, 0xea, 0xc0, 0xb0, 0x83, 0xa9, 0xed, 0x58, 0x40, 0x16, + 0xd5, 0x4b, 0xeb, 0xb2, 0xc3, 0xb7, 0xde, 0x02, 0xc2, 0x46, 0x13, 0xd5, 0x4c, 0x82, 0x04, 0xd1, + 0x22, 0x2f, 0x4d, 0x57, 0xc0, 0x9a, 0x65, 0x4a, 0x40, 0x54, 0x7f, 0x60, 0xfa, 0x9c, 0xdb, 0x32, + 0x13, 0x0f, 0xf9, 0x89, 0x81, 0x7a, 0x82, 0xfa, 0x22, 0xac, 0x0e, 0x59, 0xe6, 0x42, 0x04, 0x0f, + 0x89, 0xca, 0x00, 0x3b, 0xe7, 0xed, 0x82, 0x18, 0x13, 0x77, 0x12, 0x4d, 0xfb, 0x1e, 0x18, 0x35, + 0x50, 0xa7, 0xde, 0xb3, 0xa8, 0x6a, 0x80, 0x57, 0x39, 0x35, 0x83, 0x41, 0x04, 0xe8, 0x41, 0xdb, + 0x17, 0x80, 0x2f, 0x6f, 0xbb, 0xf7, 0x24, 0x87, 0x62, 0x0a, 0x06, 0x9e, 0x63, 0x79, 0x4e, 0xad, + 0xa1, 0x28, 0x58, 0xa5, 0x2c, 0xc9, 0xd5, 0x0c, 0x7c, 0x4f, 0xae, 0x81, 0x08, 0x64, 0x12, 0xfe, + 0xfc, 0x53, 0xfe, 0x3d, 0x9f, 0xc2, 0x4b, 0xf5, 0xf2, 0xf8, 0x08, 0x32, 0x46, 0x59, 0xaa, 0x25, + 0x32, 0xce, 0x49, 0xf6, 0x24, 0xaf, 0x90, 0x08, 0xfa, 0xb5, 0x38, 0xf8, 0x9f, 0x40, 0x03, 0xf0, + 0x28, 0x8b, 0xa2, 0x28, 0x85, 0x9c, 0x50, 0xd0, 0xbe, 0x47, 0x6b, 0xc9, 0xa4, 0x29, 0x19, 0x36, + 0x53, 0x07, 0x72, 0xe0, 0x5a, 0x87, 0x37, 0x64, 0x34, 0x8f, 0x08, 0xb2, 0x1c, 0xf4, 0xb9, 0xab, + 0x32, 0xad, 0x02, 0xde, 0x03, 0x75, 0x30, 0x49, 0x35, 0x52, 0x57, 0x33, 0x12, 0x4d, 0x3d, 0xab, + 0x27, 0x83, 0x90, 0xc9, 0xb1, 0x82, 0xee, 0x38, 0x28, 0x03, 0x63, 0x0f, 0x5c, 0xa2, 0xab, 0x67, + 0xc0, 0x4b, 0x72, 0x13, 0x01, 0x21, 0x2b, 0xe1, 0xd3, 0xa7, 0x30, 0xfe, 0x5f, 0xd8, 0xa0, 0x73, + 0xe5, 0x6a, 0x54, 0x95, 0xa9, 0x72, 0x1c, 0xa3, 0x27, 0x01, 0x63, 0x4e, 0x46, 0xc7, 0x54, 0x14, + 0x5c, 0xb9, 0x15, 0x0f, 0xb5, 0x0b, 0xb8, 0x53, 0xd4, 0xe4, 0x64, 0x5c, 0x54, 0x65, 0x45, 0xab, + 0xf1, 0x54, 0xf9, 0x10, 0x95, 0x10, 0x68, 0xed, 0x28, 0x02, 0x01, 0xc0, 0x1a, 0x15, 0x35, 0xab, + 0xa7, 0xb0, 0xb8, 0x82, 0x63, 0xd7, 0x74, 0x9c, 0x65, 0x05, 0x84, 0x68, 0x6f, 0x15, 0x2b, 0xf1, + 0xc6, 0x6e, 0x9d, 0x07, 0x90, 0x49, 0x24, 0xb9, 0xf1, 0x2f, 0x17, 0x4a, 0xd2, 0x28, 0x67, 0x95, + 0x0d, 0x17, 0x56, 0x99, 0x30, 0x2b, 0x1b, 0xcd, 0x5c, 0xee, 0xfa, 0x7b, 0xbb, 0x8e, 0x39, 0x24, + 0xce, 0x1e, 0x2d, 0xb4, 0x5b, 0x67, 0x2f, 0xd2, 0x7f, 0x72, 0x01, 0x53, 0x20, 0x01, 0x71, 0x40, + 0x00, 0xf8, 0xc4, 0x18, 0x8d, 0xa2, 0x6a, 0x2c, 0x49, 0xa6, 0x01, 0x50, 0x3e, 0x05, 0x8c, 0xd3, + 0xd4, 0x74, 0x27, 0x18, 0x09, 0xa5, 0x5e, 0x1e, 0x0b, 0xbd, 0x42, 0x11, 0x7a, 0x51, 0xf5, 0x06, + 0x2e, 0xec, 0x9c, 0x28, 0xf2, 0x1e, 0x6b, 0x04, 0x9a, 0xf1, 0x7c, 0x2a, 0x51, 0x34, 0xdd, 0x80, + 0x21, 0x6b, 0x06, 0x38, 0x23, 0x26, 0xd3, 0xf0, 0x6f, 0x1f, 0x9e, 0x76, 0xeb, 0x0c, 0xe2, 0xbe, + 0x12, 0x0e, 0x86, 0x89, 0x72, 0x1a, 0x31, 0x3e, 0x54, 0x66, 0xe1, 0x80, 0xc5, 0xdd, 0xfb, 0xf8, + 0xf6, 0xf0, 0xf9, 0x43, 0x90, 0x13, 0x18, 0x31, 0x04, 0xcc, 0xdf, 0xde, 0x4b, 0xf6, 0xf0, 0x10, + 0x3c, 0x58, 0x77, 0x79, 0xef, 0x39, 0xb9, 0x7e, 0x08, 0x8e, 0x63, 0xfc, 0x28, 0x6c, 0x2d, 0x33, + 0xb8, 0xc2, 0x4a, 0xc1, 0x9b, 0xc6, 0x1e, 0x3e, 0x04, 0x3e, 0x84, 0x4f, 0x79, 0x6f, 0x1f, 0x3e, + 0x1f, 0x82, 0x84, 0xc8, 0x07, 0x2a, 0x06, 0x0f, 0xf1, 0xea, 0x41, 0x22, 0xfb, 0xe6, 0x08, 0x79, + 0x82, 0x5f, 0x0f, 0xc1, 0xba, 0x4b, 0x13, 0xe8, 0x75, 0x0c, 0x9f, 0xeb, 0x90, 0x75, 0x26, 0x2f, + 0x7b, 0xbb, 0x50, 0xa1, 0xbb, 0x27, 0xfd, 0x89, 0x29, 0xf8, 0xc4, 0x03, 0x6b, 0x16, 0x4b, 0x0f, + 0xe7, 0x51, 0x84, 0x91, 0x35, 0xaf, 0x8f, 0x1a, 0x50, 0x7b, 0x74, 0x71, 0xc4, 0xe4, 0x6e, 0x98, + 0x79, 0x47, 0x97, 0xc8, 0x1e, 0x5d, 0xe1, 0x0c, 0x2f, 0xb5, 0x93, 0xe8, 0xa9, 0x54, 0x36, 0x7f, + 0x5e, 0x95, 0xba, 0x19, 0x01, 0xf1, 0x1d, 0x40, 0x1f, 0xc2, 0x5e, 0xb0, 0xa1, 0x73, 0x5b, 0x46, + 0xb5, 0x12, 0x6f, 0x4a, 0xea, 0xe6, 0xef, 0x80, 0xd4, 0x78, 0x53, 0xe9, 0xcb, 0x7b, 0xbb, 0x75, + 0x8a, 0x47, 0x06, 0x5f, 0x7f, 0xef, 0x32, 0x4e, 0x04, 0x18, 0x14, 0x4c, 0xce, 0xdb, 0x11, 0x19, + 0xd4, 0xdd, 0xc2, 0xc6, 0x9c, 0xb3, 0xc8, 0x0b, 0x60, 0x48, 0xd3, 0x80, 0x2d, 0x22, 0xb3, 0x0a, + 0x1b, 0x25, 0x34, 0x3f, 0x31, 0x85, 0xe2, 0x81, 0x1b, 0x43, 0x8d, 0x8e, 0x5b, 0x9c, 0xa3, 0x01, + 0x4b, 0x96, 0x4e, 0x53, 0x70, 0xa7, 0x36, 0x57, 0xeb, 0x24, 0x5f, 0x2b, 0xf5, 0xe7, 0x65, 0x54, + 0xb8, 0x60, 0xe2, 0x50, 0x93, 0xd3, 0x81, 0x9e, 0x1b, 0x97, 0x0a, 0x1b, 0x6f, 0x06, 0x7a, 0x63, + 0x39, 0xf5, 0x16, 0x2d, 0x1d, 0xb2, 0xb7, 0xd1, 0x0b, 0x3c, 0x2f, 0x52, 0xe9, 0xa7, 0x26, 0x46, + 0xde, 0xaa, 0x56, 0x1b, 0x4e, 0x6a, 0x10, 0x2d, 0x79, 0x41, 0xef, 0xa7, 0x46, 0x13, 0xff, 0xf6, + 0x6b, 0x35, 0xd4, 0xd3, 0x22, 0x71, 0x34, 0xb6, 0xf4, 0x9d, 0x2e, 0x26, 0x4e, 0x93, 0xa4, 0xe6, + 0x16, 0xe9, 0x62, 0xd2, 0x7a, 0xca, 0xd0, 0x0b, 0x2c, 0x12, 0x24, 0xc9, 0x96, 0x69, 0x75, 0x4d, + 0x48, 0x66, 0x08, 0x26, 0xed, 0x98, 0xdb, 0xe6, 0x78, 0x0c, 0xc9, 0x54, 0x05, 0x89, 0xd4, 0xed, + 0xd6, 0xa8, 0x43, 0x86, 0x90, 0x4a, 0x15, 0xa4, 0x9b, 0x40, 0x77, 0x76, 0xb6, 0xcd, 0x76, 0x0b, + 0xd2, 0xc7, 0xa0, 0x6b, 0x6a, 0xa1, 0x7d, 0x4b, 0x7a, 0x8d, 0xb6, 0x7f, 0x13, 0xa7, 0x1d, 0xa1, + 0xc3, 0x2b, 0xdb, 0x13, 0xc7, 0x76, 0x89, 0x19, 0xd4, 0x60, 0x38, 0x5b, 0x36, 0xf5, 0x40, 0x3c, + 0x69, 0xe8, 0x81, 0x98, 0xcd, 0x54, 0xe9, 0xa7, 0xf1, 0x78, 0x48, 0x5a, 0x2d, 0x49, 0xff, 0x07, + 0x3c, 0x0f, 0xbb, 0xfa, 0xb8, 0xdb, 0x94, 0x20, 0xe4, 0xfc, 0x87, 0x52, 0xe8, 0xb6, 0xde, 0xc2, + 0xbf, 0xb9, 0x6e, 0x33, 0xe8, 0xed, 0x46, 0xb6, 0xe3, 0x2c, 0x6d, 0xad, 0xe3, 0x5d, 0x4a, 0x8c, + 0x7c, 0xaf, 0x5f, 0xd0, 0x3f, 0x6b, 0xbd, 0xee, 0x92, 0xe1, 0x76, 0xa1, 0x77, 0x7a, 0xd2, 0x3b, + 0x54, 0x5d, 0x0f, 0xb3, 0x68, 0x4c, 0x89, 0x99, 0x20, 0x1a, 0x4c, 0x86, 0x15, 0xf4, 0x0c, 0xa5, + 0x46, 0x57, 0x57, 0x25, 0x5d, 0xc9, 0xe0, 0x5b, 0x92, 0x95, 0x43, 0xbc, 0x24, 0x3f, 0xd7, 0x89, + 0x92, 0xfc, 0x52, 0xbc, 0xb9, 0x22, 0x7d, 0x2c, 0x4f, 0x76, 0xb6, 0x76, 0x9a, 0x3b, 0x6d, 0xc6, + 0x93, 0xf6, 0x56, 0xbb, 0xd3, 0x2e, 0xe7, 0xc9, 0x78, 0x38, 0x6e, 0x8f, 0xdb, 0x39, 0x9e, 0x34, + 0x1b, 0xed, 0xed, 0xe6, 0x30, 0xcb, 0x91, 0x24, 0x25, 0xcf, 0x91, 0x24, 0x39, 0xcf, 0x94, 0x24, + 0x39, 0xdf, 0x8d, 0x6c, 0x42, 0x2d, 0xec, 0x6d, 0x27, 0x1d, 0x03, 0x8d, 0xff, 0x2f, 0x3a, 0x64, + 0x52, 0xe6, 0xac, 0x0d, 0x17, 0x21, 0x40, 0x99, 0x2e, 0x34, 0x9a, 0xad, 0x2c, 0xb2, 0x3a, 0xfd, + 0x93, 0xeb, 0x51, 0xd7, 0xea, 0x6e, 0x77, 0x4d, 0x3a, 0x1a, 0xf2, 0xa8, 0x8a, 0x0c, 0x41, 0x31, + 0xb0, 0x67, 0x0f, 0x93, 0xac, 0xbb, 0xd3, 0xb5, 0xb6, 0x2c, 0x5e, 0x04, 0x6d, 0x5a, 0xae, 0x88, + 0xde, 0x69, 0xed, 0x74, 0xf7, 0x0b, 0x45, 0x0e, 0xb7, 0x5e, 0x34, 0x5e, 0x1c, 0x3e, 0x7e, 0x84, + 0xe6, 0xb1, 0x14, 0xa0, 0xbc, 0x49, 0x34, 0x8e, 0x05, 0x92, 0x8c, 0x4c, 0xab, 0x5d, 0x68, 0x92, + 0x6c, 0x75, 0xda, 0xdb, 0xfa, 0x5a, 0x5d, 0x2c, 0x59, 0x28, 0x24, 0xb4, 0x9a, 0x79, 0xec, 0x19, + 0xe5, 0xb2, 0x82, 0xdc, 0x1c, 0x5a, 0x0d, 0xca, 0xfb, 0x49, 0x6d, 0x1e, 0x38, 0x3d, 0xf8, 0x5f, + 0xd9, 0xa4, 0x2b, 0x85, 0xb8, 0xd6, 0x69, 0x33, 0x3b, 0x56, 0xf7, 0x46, 0x11, 0x01, 0xee, 0x45, + 0xe0, 0xdd, 0xcd, 0xc4, 0xc2, 0xe1, 0x66, 0x32, 0xe4, 0xc6, 0xe6, 0xcc, 0x76, 0x96, 0xbd, 0xcd, + 0x93, 0x80, 0x80, 0x23, 0x88, 0xae, 0x42, 0x24, 0x35, 0x4f, 0x36, 0xd5, 0xd1, 0x1c, 0x5c, 0xd3, + 0x6b, 0xc2, 0xb1, 0x41, 0xf3, 0x9c, 0x47, 0xa6, 0xd1, 0x6a, 0x75, 0xb7, 0x4a, 0x15, 0xc8, 0xdf, + 0x80, 0xcc, 0x81, 0x37, 0xb3, 0x47, 0xd2, 0x31, 0x99, 0x93, 0x14, 0x11, 0xb4, 0x44, 0xd4, 0x00, + 0xe5, 0x56, 0x6c, 0xe8, 0x7a, 0x05, 0x35, 0xbb, 0xc2, 0xf5, 0xa3, 0xce, 0xf3, 0xd8, 0xe6, 0xa9, + 0x12, 0xce, 0x85, 0xbb, 0xe6, 0xb5, 0xf6, 0x2d, 0xa4, 0x19, 0x80, 0x10, 0xcf, 0x68, 0xea, 0xcd, + 0x76, 0xa3, 0xa1, 0x77, 0x68, 0x32, 0x98, 0x79, 0x8f, 0x25, 0xb3, 0xf9, 0xc0, 0x7a, 0x7d, 0x62, + 0x47, 0xd3, 0xf9, 0x10, 0x7d, 0xe4, 0x3a, 0x59, 0x78, 0x0b, 0xbb, 0x2e, 0xea, 0x57, 0xa5, 0x70, + 0x3e, 0x9c, 0xd9, 0x91, 0xc4, 0x7c, 0xd7, 0x50, 0x02, 0x0d, 0x84, 0x4e, 0xaa, 0x44, 0xdb, 0x34, + 0x43, 0xe9, 0xe4, 0x94, 0xa6, 0xe5, 0x4b, 0xd1, 0x56, 0x06, 0x74, 0x41, 0x38, 0x7c, 0x4c, 0x2b, + 0x75, 0x1c, 0x8a, 0x76, 0x14, 0xd6, 0x11, 0x7f, 0x5a, 0xf8, 0xc0, 0xf3, 0x97, 0x01, 0x5d, 0xd9, + 0xf8, 0x5f, 0xff, 0x9d, 0x22, 0x2f, 0xbd, 0xa4, 0x85, 0x93, 0x8e, 0x83, 0xab, 0x8f, 0x45, 0x24, + 0xde, 0xca, 0xbf, 0x52, 0x14, 0xb2, 0x51, 0xff, 0xe5, 0x97, 0x0d, 0xe9, 0x17, 0x8c, 0x43, 0x28, + 0xc3, 0xa4, 0x8c, 0xc8, 0xb0, 0xb5, 0x11, 0xcc, 0x3d, 0x09, 0xec, 0x6b, 0x64, 0x9f, 0x4f, 0x83, + 0xc3, 0x50, 0x32, 0x03, 0x78, 0x06, 0x27, 0xcd, 0xbe, 0x21, 0x96, 0xb4, 0x00, 0x62, 0x48, 0xa6, + 0xb4, 0xf9, 0xd3, 0xa6, 0x14, 0x22, 0x43, 0xc8, 0x12, 0x92, 0x1c, 0x07, 0xf1, 0x98, 0x41, 0x84, + 0x3f, 0x03, 0xe5, 0x65, 0xe1, 0x3a, 0x16, 0xe4, 0x48, 0x43, 0x88, 0x10, 0x21, 0xd4, 0x80, 0x3a, + 0xeb, 0x3c, 0x00, 0xe2, 0x4b, 0x2a, 0xd2, 0x6a, 0x63, 0x43, 0x92, 0xb2, 0x71, 0x10, 0xa4, 0xa0, + 0x54, 0xa0, 0x5f, 0x85, 0xc1, 0x90, 0x64, 0x48, 0xd9, 0xf5, 0xa7, 0x0d, 0x9a, 0x89, 0x2f, 0xcc, + 0x21, 0x7b, 0x6b, 0x43, 0xcf, 0xab, 0x86, 0x24, 0x5b, 0xb5, 0xb1, 0x43, 0x6e, 0x24, 0xfc, 0xc0, + 0xc1, 0x31, 0x9f, 0xb9, 0x72, 0x16, 0x38, 0x09, 0xa8, 0x10, 0xf8, 0x72, 0xf7, 0x49, 0xad, 0x26, + 0x0d, 0x00, 0xa1, 0x88, 0xf6, 0xc9, 0x94, 0x42, 0xdc, 0x18, 0x60, 0x46, 0x14, 0xd7, 0xc8, 0xf3, + 0x25, 0x73, 0xe8, 0x5d, 0x13, 0xfa, 0x46, 0x89, 0x03, 0xe2, 0x6c, 0x4f, 0x98, 0x8f, 0x0a, 0xc5, + 0x1c, 0x6f, 0x41, 0xb3, 0xa6, 0x84, 0x0a, 0x07, 0x4a, 0xde, 0x8d, 0x8f, 0x93, 0x7a, 0xd7, 0x50, + 0x21, 0xd0, 0x10, 0x82, 0x55, 0x4c, 0x1c, 0x83, 0x64, 0x98, 0xee, 0x52, 0x6c, 0x46, 0x90, 0x36, + 0x98, 0xb8, 0x4b, 0xc0, 0xd5, 0x70, 0x1a, 0xe0, 0xa6, 0x03, 0x1b, 0x67, 0x3f, 0x09, 0xd0, 0x14, + 0x64, 0x19, 0x02, 0xe9, 0x29, 0x06, 0xc1, 0x50, 0x30, 0x9c, 0x42, 0x03, 0xd0, 0x2a, 0xb6, 0x61, + 0x66, 0x90, 0xac, 0xd5, 0xf6, 0xa0, 0x8e, 0x5d, 0xcb, 0xbe, 0xa6, 0x1e, 0x36, 0xcb, 0x4a, 0x56, + 0xb2, 0x98, 0x5a, 0x20, 0xb8, 0xfe, 0x20, 0x81, 0x42, 0x60, 0xf3, 0x7b, 0x7b, 0xb4, 0x51, 0xda, + 0xdd, 0x13, 0xf4, 0xaa, 0xd3, 0x3a, 0x25, 0x84, 0xc7, 0x56, 0x4c, 0xc9, 0x37, 0x2d, 0x0b, 0x58, + 0x85, 0xf5, 0x52, 0x46, 0x02, 0x1d, 0x16, 0x10, 0xc5, 0x4b, 0x76, 0xb4, 0x49, 0xf1, 0x42, 0x96, + 0x87, 0xd8, 0x83, 0xb4, 0x30, 0xc5, 0x47, 0x70, 0x7b, 0x6a, 0x43, 0x79, 0x97, 0x61, 0xc7, 0x1b, + 0xa3, 0x48, 0x72, 0xc4, 0x7c, 0xb3, 0xd6, 0x92, 0x32, 0xd8, 0xc9, 0x7b, 0xa1, 0x37, 0xcb, 0x62, + 0xb1, 0x5b, 0x07, 0xe8, 0x3d, 0xde, 0x3b, 0xfa, 0x0c, 0x0f, 0x1b, 0xbc, 0xa6, 0x77, 0x79, 0xfa, + 0x4b, 0x43, 0x33, 0x90, 0x40, 0xc4, 0x01, 0x6d, 0x26, 0x85, 0x9c, 0x09, 0x48, 0x7e, 0x40, 0x1e, + 0x48, 0x0e, 0xb4, 0x34, 0x9d, 0x85, 0xb9, 0x0c, 0xa5, 0x6b, 0x3b, 0xb4, 0x87, 0xa0, 0x21, 0x0a, + 0x74, 0x43, 0x8e, 0xd6, 0xa0, 0xc6, 0x84, 0x72, 0x5c, 0x74, 0x4c, 0x30, 0xaf, 0x2e, 0x55, 0x94, + 0xd1, 0x68, 0xca, 0x04, 0x89, 0xf1, 0xa9, 0xa6, 0x63, 0xc8, 0x41, 0xf1, 0xca, 0x61, 0x45, 0x89, + 0x80, 0xdc, 0x85, 0x97, 0x90, 0x12, 0xc7, 0x87, 0x11, 0x9a, 0xf0, 0x1b, 0x51, 0x02, 0x0d, 0xe5, + 0x00, 0x22, 0xa4, 0x20, 0x16, 0x94, 0x90, 0xd7, 0xa6, 0xed, 0xe0, 0x4e, 0x18, 0x69, 0x18, 0x78, + 0xe1, 0x02, 0xb8, 0x46, 0x0d, 0x90, 0x26, 0xbd, 0x07, 0x31, 0x1a, 0xa3, 0x8c, 0x41, 0x4f, 0x20, + 0x40, 0x49, 0xe4, 0x06, 0xca, 0x32, 0x4a, 0x63, 0x47, 0xcd, 0x44, 0xd8, 0x24, 0xd0, 0xcd, 0x10, + 0xc7, 0x23, 0x5d, 0x5c, 0x72, 0x8d, 0xd5, 0x80, 0xf8, 0x84, 0x2a, 0x74, 0x07, 0xea, 0xa0, 0x12, + 0x05, 0x8d, 0x8d, 0xc1, 0xa4, 0x40, 0x16, 0xba, 0x6e, 0x84, 0x13, 0x8e, 0x4b, 0x3b, 0x73, 0xe5, + 0xca, 0x68, 0x94, 0xd0, 0x87, 0x92, 0x62, 0x12, 0x78, 0x8b, 0x5a, 0x43, 0xf2, 0x38, 0x72, 0x35, + 0x86, 0x4a, 0x56, 0xc0, 0x28, 0x4d, 0x92, 0xce, 0x23, 0x6d, 0x18, 0x9f, 0x42, 0x02, 0x89, 0xe0, + 0x4c, 0x2c, 0x61, 0x94, 0x59, 0x24, 0xcb, 0x4b, 0xa4, 0x90, 0xc9, 0xe9, 0x38, 0x86, 0x61, 0x41, + 0xc9, 0x32, 0x8a, 0xc0, 0xf6, 0x30, 0x4a, 0x26, 0x22, 0x95, 0x63, 0x1d, 0x6f, 0xa2, 0xc8, 0xbe, + 0x69, 0x0d, 0x3c, 0x4f, 0x8e, 0x4f, 0xa6, 0x08, 0x6b, 0x3d, 0xc7, 0xef, 0x1c, 0x6b, 0xd3, 0x1e, + 0x2d, 0x6b, 0xe6, 0x3c, 0xf2, 0xd2, 0x1a, 0x84, 0x24, 0xe6, 0xaa, 0x43, 0xbc, 0x4a, 0x09, 0x93, + 0xad, 0xb4, 0xb1, 0x56, 0xa9, 0x44, 0x0d, 0x29, 0x04, 0xc0, 0xe0, 0x32, 0xd6, 0x86, 0xd0, 0xdf, + 0xab, 0x9e, 0x44, 0xbf, 0x6a, 0x98, 0x22, 0xef, 0x6d, 0xac, 0x37, 0x9a, 0x4a, 0x1c, 0xa7, 0xef, + 0x39, 0x9a, 0x3c, 0x94, 0x6e, 0x17, 0xf4, 0x8d, 0x39, 0xf3, 0x41, 0x72, 0xbc, 0x31, 0x1d, 0xbe, + 0x13, 0xc2, 0x46, 0xad, 0x68, 0x95, 0x5a, 0x43, 0x26, 0x16, 0x19, 0x9d, 0xa4, 0xa2, 0xbe, 0x59, + 0x7a, 0x73, 0x10, 0x13, 0x60, 0x3f, 0x2d, 0x90, 0x1d, 0xb3, 0x8f, 0xa0, 0x34, 0x25, 0xf1, 0xdd, + 0x04, 0x9b, 0x36, 0x44, 0x37, 0xd9, 0xa0, 0xec, 0x75, 0xc8, 0x4c, 0xde, 0x7b, 0x45, 0x20, 0x6e, + 0x00, 0x31, 0x7c, 0xef, 0x12, 0xba, 0x39, 0xe0, 0x71, 0xd0, 0xe7, 0x0b, 0xef, 0x7b, 0xa0, 0xa7, + 0x01, 0xf9, 0x9e, 0xda, 0x5f, 0x78, 0xf3, 0xe0, 0x7b, 0xc0, 0x41, 0x22, 0x53, 0xf0, 0x0c, 0x8f, + 0x90, 0x7e, 0xdf, 0xc3, 0x20, 0xa6, 0x0e, 0x50, 0xcc, 0x81, 0xac, 0x76, 0xc0, 0x75, 0xc5, 0x4d, + 0xa2, 0x4f, 0xc1, 0xca, 0xce, 0x23, 0xce, 0x39, 0x68, 0xf8, 0x6f, 0xe7, 0x18, 0x1f, 0xb4, 0xa2, + 0xaf, 0x43, 0x73, 0x74, 0x35, 0xa1, 0xeb, 0xc0, 0xdc, 0x9f, 0x94, 0x26, 0x01, 0x59, 0xca, 0x69, + 0xdf, 0x38, 0x75, 0xa8, 0xf9, 0x00, 0xc4, 0x4c, 0x2a, 0xe5, 0x12, 0x61, 0x33, 0x22, 0x68, 0x3c, + 0xa8, 0xf5, 0xa2, 0x8e, 0x00, 0xd3, 0xed, 0x80, 0xe6, 0x08, 0x97, 0x08, 0x02, 0xd0, 0x52, 0xc2, + 0x92, 0x51, 0xbc, 0x99, 0x62, 0x8e, 0xcc, 0x2b, 0xa4, 0xe7, 0xdc, 0x67, 0x4a, 0x69, 0x0e, 0xf2, + 0x49, 0xf7, 0xf9, 0x51, 0x4d, 0xc0, 0x35, 0x79, 0xbe, 0xdd, 0xec, 0xf8, 0x2b, 0x19, 0xef, 0x5c, + 0x69, 0x73, 0xb3, 0xf7, 0x0d, 0xdc, 0x20, 0x7b, 0xbc, 0x4c, 0xec, 0x8c, 0xd0, 0x9c, 0xc8, 0xdf, + 0xbd, 0x73, 0x02, 0x9e, 0xc2, 0x01, 0x57, 0x4f, 0x2f, 0xb0, 0xe9, 0x8f, 0xb4, 0xe9, 0xaa, 0xf4, + 0x8a, 0xb0, 0xe9, 0xbd, 0x8c, 0x3c, 0x24, 0x2c, 0x5e, 0x67, 0xf6, 0x9a, 0x85, 0x7a, 0xc1, 0x74, + 0x6b, 0xd6, 0x85, 0xe0, 0x4a, 0x95, 0x7b, 0x48, 0x39, 0x43, 0x55, 0x50, 0xb4, 0x4c, 0x31, 0xdf, + 0xa1, 0x9a, 0xb2, 0x26, 0x9d, 0x3e, 0x47, 0xc1, 0xdc, 0x1d, 0x51, 0x87, 0x0c, 0x6c, 0xaa, 0xbc, + 0xf7, 0x74, 0x04, 0x1e, 0x6a, 0x5f, 0xa2, 0xb3, 0x74, 0xbc, 0x86, 0x4d, 0x4c, 0xda, 0xdc, 0xe3, + 0xf3, 0x75, 0xb9, 0x3d, 0x44, 0xff, 0xfb, 0xbf, 0xfd, 0x4f, 0xa9, 0x46, 0x7d, 0x57, 0x48, 0x51, + 0x53, 0x27, 0x16, 0x69, 0x9f, 0x6e, 0xe2, 0x01, 0x2e, 0x71, 0xb7, 0xd2, 0x92, 0x40, 0x30, 0xa0, + 0x65, 0xe6, 0x7e, 0xf2, 0x6e, 0x5f, 0x32, 0x79, 0x07, 0x47, 0xf5, 0xc2, 0xa7, 0x9e, 0x3d, 0x76, + 0x77, 0x94, 0x38, 0xca, 0xe0, 0x2d, 0x40, 0x61, 0xe1, 0xbc, 0xb0, 0xce, 0xd1, 0x02, 0xc9, 0xb4, + 0xda, 0x1f, 0x73, 0x12, 0x2c, 0xcf, 0x68, 0x14, 0xe6, 0x05, 0x95, 0xcd, 0x9f, 0xb8, 0x65, 0xd2, + 0x28, 0xde, 0x7c, 0xe2, 0xfb, 0x1c, 0x87, 0x84, 0x21, 0xe1, 0x1a, 0xda, 0x73, 0x68, 0xa3, 0xa2, + 0xe0, 0x94, 0x1a, 0xb2, 0xec, 0x37, 0x62, 0x06, 0x15, 0x05, 0x2a, 0x8c, 0x01, 0x03, 0xf0, 0x5a, + 0xf6, 0xc1, 0xb5, 0xdb, 0x40, 0x8c, 0xa8, 0x37, 0x2b, 0x81, 0xc7, 0x7a, 0x46, 0xa2, 0xac, 0x19, + 0x61, 0x9e, 0x2f, 0xcb, 0xfa, 0xa7, 0x6f, 0x06, 0xe6, 0x4c, 0x5a, 0xb1, 0x15, 0x93, 0x58, 0xac, + 0x1d, 0x83, 0x23, 0x98, 0x05, 0xab, 0xc3, 0x27, 0x5a, 0x5d, 0x56, 0x01, 0xa3, 0x1d, 0x5d, 0x19, + 0x9d, 0x25, 0x8f, 0xc2, 0x45, 0x85, 0xc1, 0x59, 0x79, 0x92, 0x4d, 0x66, 0xeb, 0x38, 0x8c, 0x42, + 0x74, 0x16, 0xfd, 0xa7, 0x62, 0x2d, 0xd0, 0xab, 0xb4, 0x00, 0x03, 0x2c, 0x9d, 0x90, 0xdc, 0xcc, + 0x16, 0x3c, 0xb2, 0x36, 0xd5, 0x4c, 0x31, 0xcd, 0xb6, 0x84, 0x1f, 0x9c, 0x67, 0x43, 0xc1, 0x55, + 0xbd, 0x87, 0xee, 0xe0, 0xc3, 0x02, 0xe9, 0x85, 0x23, 0x24, 0x69, 0x00, 0x31, 0xaf, 0xd9, 0xd0, + 0x30, 0x70, 0x00, 0x0c, 0xf1, 0xa1, 0x39, 0x9a, 0x56, 0x30, 0x0d, 0x71, 0x91, 0x8c, 0x3d, 0xde, + 0x5f, 0xd6, 0x63, 0x91, 0x4e, 0x37, 0x05, 0x00, 0xbe, 0x74, 0x75, 0x5f, 0x32, 0x8c, 0x3b, 0x7a, + 0xcc, 0x16, 0xff, 0x93, 0x1a, 0x20, 0x3c, 0x14, 0xe5, 0x13, 0xff, 0x1d, 0xd7, 0xe6, 0x2b, 0x9b, + 0x2c, 0x32, 0x27, 0xd6, 0xa6, 0xc2, 0x41, 0x63, 0x89, 0x2e, 0xd3, 0xdf, 0x5b, 0x32, 0x20, 0x33, + 0x50, 0x6e, 0x65, 0x85, 0xe9, 0x77, 0xac, 0x94, 0xd1, 0x29, 0x75, 0x48, 0xbe, 0x83, 0x58, 0xa9, + 0x1f, 0xf1, 0x17, 0xc9, 0x65, 0x5b, 0xf7, 0x10, 0x0b, 0x58, 0xfb, 0xff, 0x14, 0xa9, 0xb2, 0x0e, + 0x6d, 0x22, 0xf3, 0x0c, 0xf7, 0x34, 0x66, 0x7b, 0x31, 0x77, 0x53, 0xac, 0x31, 0x58, 0xdb, 0xc4, + 0x62, 0x9b, 0x99, 0x55, 0x2c, 0x10, 0x7b, 0x9e, 0x7d, 0x59, 0xa2, 0xc9, 0x33, 0x31, 0x9b, 0x54, + 0x6e, 0xb0, 0x32, 0x9a, 0x3c, 0x53, 0xbc, 0xe0, 0xa2, 0x27, 0x30, 0xcc, 0x9e, 0x8b, 0xb0, 0x08, + 0xa7, 0x2b, 0xe4, 0xbd, 0x9f, 0x57, 0x77, 0x52, 0x3c, 0xce, 0x6a, 0xfe, 0x82, 0xdf, 0x97, 0xd1, + 0xd4, 0xac, 0x8c, 0x96, 0xf3, 0x8c, 0xd7, 0x5c, 0xa1, 0xbc, 0xd3, 0x48, 0x5f, 0x2e, 0xf9, 0x5b, + 0x09, 0xd5, 0x2a, 0xe5, 0x38, 0xa9, 0x2c, 0xe2, 0xcd, 0x36, 0xa8, 0x30, 0x66, 0xc5, 0x9c, 0x45, + 0x96, 0xe7, 0x82, 0x8a, 0x1b, 0xa3, 0xe2, 0x4c, 0x69, 0x0c, 0xce, 0x36, 0x58, 0x59, 0x74, 0x15, + 0x42, 0x16, 0x67, 0xb8, 0x16, 0xe5, 0xa1, 0xeb, 0x59, 0x24, 0xd4, 0xa4, 0x68, 0x68, 0xf5, 0xa4, + 0x5c, 0xf3, 0x12, 0x08, 0x13, 0x05, 0xb5, 0xc0, 0x56, 0x59, 0xe0, 0x8e, 0x8c, 0x22, 0x67, 0x59, + 0xe0, 0x32, 0x48, 0xec, 0x73, 0x32, 0x36, 0xe7, 0x4e, 0xf4, 0x01, 0x57, 0x28, 0xc2, 0x1c, 0xaf, + 0xef, 0x04, 0xb9, 0xa3, 0x63, 0x69, 0x27, 0x50, 0x7f, 0x3f, 0xa4, 0x65, 0x1f, 0xd6, 0xeb, 0x6c, + 0x22, 0x08, 0x03, 0x9a, 0x00, 0x6c, 0x3b, 0xd2, 0x84, 0x1b, 0x1e, 0x9e, 0xed, 0xe0, 0xe4, 0xc0, + 0x62, 0x8a, 0x7b, 0x6e, 0xa8, 0x92, 0x9a, 0xe1, 0x4a, 0x34, 0x09, 0xf3, 0xe6, 0x80, 0xed, 0x3e, + 0x10, 0xe6, 0x00, 0xb7, 0x81, 0x49, 0x35, 0x36, 0x2d, 0xc2, 0xdb, 0x80, 0x14, 0x56, 0x02, 0x00, + 0x27, 0x13, 0xea, 0xe3, 0x0c, 0x97, 0x74, 0x84, 0x89, 0x85, 0xad, 0x3b, 0x0d, 0x07, 0xd6, 0x56, + 0x49, 0x2b, 0x16, 0x94, 0xa3, 0xd4, 0x29, 0x31, 0x0d, 0x25, 0x3b, 0xef, 0xd8, 0xae, 0x4f, 0xe4, + 0x65, 0x86, 0x34, 0xa8, 0x63, 0x66, 0x79, 0x0d, 0x8b, 0x3a, 0x25, 0xd3, 0x50, 0xc6, 0x04, 0xcd, + 0xe9, 0x68, 0x3e, 0x13, 0x3a, 0xef, 0x1d, 0xe0, 0x5d, 0x01, 0xfb, 0x81, 0x7c, 0x78, 0x34, 0x81, + 0xf9, 0x5b, 0xe8, 0x93, 0x91, 0x3d, 0xb6, 0xd3, 0x69, 0x1d, 0xdb, 0x2a, 0xa7, 0x25, 0xe8, 0xb8, + 0x1c, 0x0d, 0x05, 0xdc, 0xf7, 0x53, 0x10, 0x06, 0x42, 0xaa, 0x13, 0xff, 0x66, 0xba, 0x31, 0x4d, + 0x0c, 0xd5, 0x27, 0xc4, 0xa8, 0x4b, 0x2f, 0x39, 0x19, 0xe6, 0xae, 0x0d, 0x46, 0x80, 0x49, 0x50, + 0xba, 0xcf, 0x0c, 0x29, 0x8d, 0xe2, 0xc3, 0x89, 0x8a, 0x11, 0x2f, 0xa3, 0x27, 0x47, 0x90, 0x6d, + 0xf3, 0x61, 0x65, 0xe9, 0x66, 0xd5, 0x7b, 0x90, 0xa3, 0x05, 0x00, 0x43, 0x07, 0x46, 0x71, 0x25, + 0x83, 0x24, 0x38, 0xfd, 0xe0, 0x76, 0xdd, 0x08, 0x8b, 0x1f, 0x2a, 0x59, 0x8b, 0xc2, 0xf7, 0x91, + 0x64, 0xb7, 0x35, 0x1d, 0x21, 0x74, 0x85, 0xda, 0x9d, 0x99, 0x10, 0x05, 0xa3, 0x28, 0x1e, 0x0a, + 0x4d, 0xa4, 0x15, 0x0b, 0x6d, 0x4f, 0x9b, 0x9f, 0x99, 0xfe, 0xfd, 0x72, 0x95, 0x5a, 0x05, 0xb4, + 0x72, 0x59, 0x3a, 0x48, 0x43, 0x10, 0xa9, 0x19, 0x9e, 0xab, 0xa1, 0x33, 0x66, 0x0e, 0xb9, 0x26, + 0x0e, 0xe5, 0x69, 0x86, 0x12, 0x74, 0x9b, 0x9e, 0x91, 0x25, 0x08, 0xef, 0x07, 0x6d, 0x98, 0x21, + 0xbb, 0x97, 0x31, 0x5b, 0xac, 0x94, 0xb0, 0x50, 0x50, 0xf2, 0x11, 0xbe, 0x85, 0xf4, 0x4c, 0x4a, + 0x6d, 0x9a, 0xd4, 0x93, 0x36, 0x37, 0x93, 0xea, 0x38, 0xb5, 0x98, 0xcd, 0x49, 0x16, 0xa1, 0xb3, + 0x0c, 0xe1, 0xdb, 0xb6, 0x8b, 0x63, 0x96, 0x6d, 0x1e, 0xcb, 0x3a, 0x38, 0x89, 0xca, 0x4f, 0x6c, + 0x3f, 0x47, 0x93, 0xce, 0xe0, 0xfc, 0xbc, 0x12, 0x18, 0xc4, 0xe8, 0x9a, 0xb7, 0x65, 0x09, 0xcb, + 0xd6, 0xd8, 0x3a, 0x39, 0x98, 0x1e, 0xf8, 0x8e, 0xa9, 0x0d, 0xc2, 0x87, 0xbc, 0x59, 0x88, 0x85, + 0x19, 0xd6, 0xbe, 0x79, 0xb6, 0x5b, 0xd9, 0xe4, 0x66, 0x99, 0x9a, 0x51, 0xe1, 0xa0, 0x15, 0x4c, + 0x29, 0x52, 0x35, 0x23, 0xb2, 0x0f, 0x78, 0x36, 0x82, 0x27, 0xe5, 0x8a, 0x20, 0x27, 0xb8, 0x5c, + 0xac, 0xee, 0x1f, 0x51, 0x54, 0x5e, 0x1f, 0xd4, 0x45, 0xf7, 0x39, 0x83, 0x1b, 0xeb, 0x12, 0xc2, + 0x1b, 0xb9, 0x4b, 0x28, 0x85, 0x84, 0xac, 0xc9, 0xc7, 0xda, 0x68, 0xbe, 0xd3, 0xca, 0xdf, 0x29, + 0x26, 0x3f, 0x24, 0x24, 0x47, 0x56, 0x5e, 0x44, 0x6c, 0xeb, 0xf1, 0x02, 0x52, 0x12, 0xc9, 0x31, + 0x71, 0x41, 0x2f, 0xe3, 0xe7, 0x55, 0xae, 0x4b, 0x54, 0x6a, 0x66, 0x05, 0x6f, 0x25, 0x15, 0x1f, + 0x31, 0x8c, 0xd7, 0x45, 0x27, 0x75, 0x57, 0xef, 0x13, 0x1e, 0xa1, 0xfc, 0x33, 0x22, 0x74, 0x71, + 0x94, 0xe8, 0xe2, 0x7a, 0x9d, 0x89, 0xcc, 0xc5, 0x11, 0x46, 0x85, 0x33, 0xd3, 0x12, 0x3e, 0x87, + 0x09, 0xc1, 0xb3, 0x90, 0x95, 0xa9, 0x79, 0x8d, 0xaa, 0x80, 0xf0, 0xcd, 0x66, 0x04, 0x22, 0x4b, + 0x1a, 0xf4, 0x7b, 0xe0, 0x5d, 0x98, 0x7e, 0xc4, 0x1e, 0x2c, 0x6a, 0x9c, 0x59, 0x91, 0x67, 0x50, + 0xb3, 0xa8, 0x37, 0xa7, 0xf6, 0x72, 0xbe, 0x89, 0x2a, 0xdd, 0xe1, 0x79, 0x70, 0x75, 0x24, 0x76, + 0x93, 0x85, 0x12, 0xce, 0x6d, 0xe1, 0x6a, 0x04, 0xce, 0x58, 0x33, 0x22, 0xe3, 0x14, 0x83, 0x99, + 0x89, 0xe9, 0xca, 0x5c, 0x2f, 0x94, 0xf1, 0xec, 0xfb, 0xc6, 0xbd, 0xfe, 0x0c, 0x40, 0x97, 0xa4, + 0x6e, 0xac, 0x59, 0xd9, 0xd4, 0x20, 0xf4, 0x1f, 0x63, 0x81, 0x93, 0x85, 0x8e, 0xbc, 0x68, 0x41, + 0x6b, 0xa5, 0xfb, 0x49, 0x8a, 0x41, 0x21, 0x6f, 0x84, 0x46, 0x19, 0xc5, 0x71, 0x90, 0x07, 0x2d, + 0xb8, 0x6c, 0xf7, 0x46, 0xa5, 0xdc, 0x33, 0x4b, 0x4c, 0x35, 0xf7, 0xd9, 0x84, 0x19, 0x38, 0xca, + 0xad, 0x59, 0x14, 0xdc, 0x05, 0x2c, 0x68, 0x47, 0x6b, 0x6e, 0x59, 0x82, 0x66, 0xb1, 0x9f, 0x10, + 0xe3, 0xe3, 0x44, 0xcc, 0xd3, 0xa7, 0x77, 0x86, 0xcb, 0x06, 0x0c, 0x54, 0xcc, 0xbf, 0x53, 0x21, + 0xb1, 0x8d, 0xa0, 0x0f, 0x77, 0xf0, 0xae, 0x0a, 0xbe, 0xe8, 0x5f, 0x53, 0xaf, 0x34, 0xef, 0x11, + 0x01, 0xf9, 0xf9, 0xfc, 0xc6, 0x3c, 0x08, 0x20, 0x00, 0x72, 0x96, 0x25, 0xd3, 0x0a, 0x38, 0x50, + 0xca, 0xc2, 0x7c, 0xd0, 0x2f, 0x74, 0x08, 0x85, 0x58, 0x4b, 0xc8, 0xe7, 0xbb, 0xf8, 0xb6, 0x4c, + 0xba, 0x62, 0x44, 0x77, 0x64, 0x52, 0xef, 0xdb, 0x0e, 0x7d, 0xc7, 0x5c, 0x66, 0x86, 0x08, 0x56, + 0x59, 0x94, 0x56, 0xba, 0xad, 0x1f, 0x33, 0xca, 0xc5, 0x93, 0x65, 0xc7, 0xeb, 0x7b, 0x87, 0x70, + 0xf5, 0x4b, 0xc5, 0x41, 0xbf, 0xe2, 0x33, 0x9b, 0xb8, 0x3f, 0xa3, 0x3f, 0x33, 0x83, 0x89, 0xed, + 0xf6, 0xf4, 0x3e, 0xae, 0xfd, 0xc0, 0x78, 0xe9, 0xe9, 0x31, 0x02, 0xae, 0xd2, 0x19, 0x41, 0xb6, + 0xfa, 0x9d, 0x59, 0x66, 0xce, 0x2e, 0x17, 0x87, 0xa6, 0x1b, 0xd6, 0x42, 0x12, 0xd8, 0xe3, 0x58, + 0x1b, 0x4e, 0x6a, 0xe1, 0x7c, 0x34, 0x22, 0x61, 0xb8, 0x5a, 0x9b, 0x4f, 0xfc, 0xa9, 0x3d, 0x32, + 0xc7, 0x1d, 0x9d, 0x02, 0xd9, 0xee, 0xd8, 0x2b, 0x81, 0x68, 0x36, 0x76, 0xba, 0xe3, 0x16, 0x85, + 0x58, 0x98, 0x81, 0x5b, 0x02, 0x31, 0x1e, 0x8f, 0x1a, 0xfa, 0x16, 0x85, 0xa0, 0x8b, 0x5a, 0xa5, + 0x20, 0x9d, 0x66, 0xa7, 0x19, 0x27, 0x33, 0x1a, 0x25, 0x20, 0xad, 0x56, 0x2b, 0xe6, 0x93, 0x4d, + 0xa5, 0xb9, 0xed, 0x58, 0xb3, 0x6a, 0x43, 0x18, 0x77, 0x57, 0x2b, 0xce, 0x90, 0x1e, 0x7d, 0xc3, + 0x64, 0x0c, 0x34, 0x93, 0x54, 0x7c, 0xc1, 0x44, 0x17, 0xf8, 0x95, 0x24, 0xe2, 0x4b, 0xac, 0x65, + 0x02, 0xd9, 0x15, 0x7d, 0x66, 0x41, 0x15, 0xb0, 0xbc, 0xc7, 0x52, 0x39, 0x08, 0x5b, 0x32, 0x58, + 0x25, 0xcf, 0xbd, 0x06, 0xcf, 0x10, 0xc1, 0xec, 0x2a, 0xf3, 0x06, 0xac, 0xc9, 0x65, 0x36, 0x72, + 0x99, 0x50, 0xb2, 0x10, 0x2c, 0xaf, 0xc4, 0x7b, 0x8f, 0xbd, 0x67, 0x00, 0x58, 0x94, 0xba, 0x4a, + 0xdf, 0x7b, 0xf8, 0x1e, 0x6b, 0x0b, 0x0c, 0xba, 0x57, 0x74, 0x26, 0x96, 0x8a, 0x47, 0xac, 0xd1, + 0x30, 0x3c, 0x2b, 0x31, 0x31, 0x98, 0x41, 0xc0, 0x4b, 0xc8, 0x0d, 0x7d, 0x6d, 0x8a, 0x57, 0xdc, + 0x65, 0xa3, 0xcd, 0x96, 0x49, 0x42, 0x0d, 0x1c, 0x42, 0x4c, 0xe4, 0x62, 0x56, 0x63, 0xd3, 0xa1, + 0x1c, 0x2c, 0x60, 0x48, 0xf0, 0x2c, 0x3a, 0x6d, 0xc8, 0xd1, 0xf0, 0xb1, 0x4a, 0x21, 0x90, 0x14, + 0x18, 0x8d, 0x63, 0x92, 0xd2, 0x68, 0xf2, 0xa4, 0x76, 0x9a, 0xd4, 0xa5, 0x49, 0xcb, 0x14, 0x8a, + 0x36, 0x8d, 0x90, 0x42, 0xb2, 0x45, 0xe3, 0xac, 0x74, 0x66, 0x46, 0x75, 0x45, 0x9f, 0xe9, 0xfc, + 0x71, 0x8f, 0xa5, 0xf0, 0x6c, 0x61, 0x9a, 0x8b, 0x84, 0xec, 0xd3, 0xdc, 0x24, 0x91, 0x38, 0x8e, + 0xed, 0x87, 0x76, 0xd8, 0x5f, 0x4c, 0xc1, 0xda, 0xd7, 0xe8, 0xe2, 0x1d, 0xc8, 0xc1, 0x22, 0x30, + 0xfd, 0x58, 0xcb, 0x4e, 0x4b, 0xaf, 0xd8, 0x0b, 0xba, 0x04, 0x61, 0xd2, 0x52, 0x6e, 0xb1, 0x31, + 0x07, 0xc1, 0xd3, 0x62, 0x4d, 0xcc, 0x66, 0x0f, 0x49, 0xb4, 0xc0, 0x2d, 0x59, 0xc9, 0xec, 0x36, + 0x9b, 0x8e, 0xe9, 0xd1, 0x16, 0x45, 0x6e, 0x0a, 0xce, 0x1b, 0x2d, 0x42, 0x8b, 0x86, 0x53, 0xa7, + 0x64, 0x85, 0xfb, 0x3c, 0x40, 0xf8, 0x7d, 0x70, 0x1e, 0x0a, 0x59, 0xbd, 0x29, 0x76, 0x73, 0x7d, + 0x9c, 0x04, 0x93, 0xa1, 0x49, 0xb7, 0x91, 0x89, 0xff, 0x5a, 0x53, 0x89, 0x35, 0x3c, 0x36, 0x9f, + 0x8c, 0x04, 0xdb, 0xc5, 0xfd, 0x62, 0x6c, 0x24, 0xf5, 0x99, 0x48, 0xb5, 0x90, 0x1d, 0x5c, 0x96, + 0xe8, 0x73, 0xa6, 0xde, 0x80, 0xf8, 0xa0, 0xe7, 0x80, 0x6e, 0xfc, 0x29, 0x9b, 0xe7, 0x7b, 0xa1, + 0xcd, 0x06, 0x0f, 0xc7, 0x1d, 0x1b, 0xaa, 0xa1, 0x7f, 0x95, 0xc5, 0x8c, 0x1e, 0xd1, 0xcf, 0xec, + 0x7d, 0x61, 0x47, 0xf6, 0xc3, 0xeb, 0x49, 0xf5, 0x66, 0xe6, 0xf4, 0xc5, 0x75, 0x05, 0x17, 0xe7, + 0x2f, 0x6a, 0xdb, 0xea, 0x2e, 0x24, 0x4b, 0x90, 0xec, 0xe2, 0xd2, 0x48, 0x14, 0xf9, 0xbd, 0x7a, + 0x7d, 0xb1, 0x58, 0x68, 0x8b, 0x96, 0xe6, 0x05, 0x93, 0x7a, 0x13, 0x34, 0x1e, 0x16, 0x94, 0xd9, + 0xa2, 0x84, 0x21, 0xb7, 0x74, 0x99, 0x4f, 0xdb, 0xb3, 0x67, 0x76, 0x08, 0xeb, 0xc6, 0x90, 0x75, + 0x49, 0x97, 0x5a, 0xf8, 0x4f, 0xde, 0xdb, 0xf5, 0xcd, 0x68, 0x2a, 0xe1, 0xfc, 0x50, 0x47, 0xda, + 0xd2, 0x3a, 0xd3, 0xa6, 0x0e, 0x0f, 0x0d, 0xfe, 0xdd, 0x6c, 0xd2, 0x14, 0x5c, 0x70, 0x09, 0xbc, + 0x2b, 0x5c, 0xff, 0x43, 0x59, 0x11, 0xaf, 0x35, 0xde, 0x4c, 0x3b, 0x49, 0x40, 0xd2, 0x8d, 0x4c, + 0xdf, 0x90, 0x69, 0xd7, 0xe4, 0x3a, 0xce, 0xe3, 0x5f, 0x4f, 0xf6, 0x36, 0x95, 0x8c, 0x6a, 0x13, + 0x0b, 0x54, 0x2d, 0x20, 0x64, 0x66, 0x97, 0xd8, 0xb6, 0x78, 0x5d, 0xb0, 0xfc, 0x2d, 0x5d, 0x8f, + 0xcb, 0x66, 0x78, 0x35, 0xe1, 0x88, 0xae, 0x86, 0x1e, 0x6a, 0x11, 0xd3, 0x02, 0x59, 0xb6, 0x5d, + 0xb4, 0xdc, 0xba, 0x54, 0xeb, 0xf8, 0x37, 0xf0, 0xf5, 0x53, 0x77, 0x7b, 0x1c, 0x67, 0x66, 0x3c, + 0x85, 0x6a, 0xe8, 0x80, 0xe1, 0x80, 0x0a, 0xc5, 0x9b, 0x4e, 0x47, 0xf8, 0x0d, 0x7f, 0x07, 0xea, + 0x21, 0x6b, 0x8b, 0x95, 0xd6, 0x1a, 0xb4, 0x4a, 0x1d, 0xf7, 0x6f, 0x8e, 0xdb, 0x71, 0xf9, 0x3c, + 0x6a, 0x06, 0xa9, 0x35, 0xd5, 0x0c, 0xb8, 0xb4, 0x4b, 0xaa, 0xed, 0x88, 0x6a, 0x29, 0xae, 0x74, + 0x9e, 0x72, 0xda, 0x60, 0x87, 0xa9, 0x13, 0x2d, 0xd5, 0xbf, 0xb3, 0x36, 0xba, 0x71, 0x4f, 0x68, + 0x06, 0xa8, 0x29, 0xf4, 0x1c, 0xf0, 0x9b, 0x28, 0x8a, 0xfd, 0x9c, 0xbe, 0x59, 0xdf, 0x03, 0xf5, + 0x2f, 0x75, 0xd6, 0x80, 0xc6, 0x4b, 0xfc, 0xe4, 0xec, 0xd1, 0x7b, 0x43, 0x57, 0xf9, 0xf3, 0x29, + 0x31, 0xad, 0xf7, 0xae, 0xb3, 0x34, 0x1a, 0x69, 0x4a, 0x88, 0x07, 0x91, 0x2d, 0xa3, 0x29, 0x52, + 0xce, 0x7c, 0xdb, 0x68, 0x89, 0x97, 0x23, 0xf7, 0x1a, 0x94, 0x94, 0x65, 0x24, 0x47, 0x98, 0xfa, + 0x7c, 0x1b, 0x0f, 0x6b, 0x74, 0x45, 0x7d, 0x29, 0x3c, 0xd5, 0x9b, 0xd9, 0xca, 0x43, 0x54, 0x53, + 0x59, 0x99, 0x69, 0xf4, 0x61, 0x5c, 0xa6, 0x8b, 0x95, 0xda, 0xcf, 0x2b, 0xc2, 0xe2, 0x1b, 0x1e, + 0xcf, 0xa8, 0x25, 0x0e, 0x5a, 0x44, 0xc2, 0xa8, 0x22, 0xe3, 0xa7, 0xac, 0xa8, 0x44, 0x73, 0xd7, + 0x0f, 0x3b, 0x9b, 0x0f, 0x1d, 0x76, 0x36, 0x0b, 0x87, 0x9d, 0x4d, 0x7a, 0xd8, 0x59, 0x73, 0xd7, + 0x4e, 0x7e, 0x99, 0x4a, 0xf6, 0xf0, 0x36, 0x9d, 0x80, 0x9d, 0x69, 0x78, 0xfa, 0xc7, 0xb6, 0x14, + 0x25, 0xce, 0xbf, 0xe7, 0xcf, 0xc0, 0xfb, 0x01, 0xd9, 0x93, 0xab, 0xc5, 0x83, 0x6e, 0x2a, 0x3d, + 0x5e, 0xd9, 0x54, 0xaa, 0xf2, 0x6e, 0x9d, 0x42, 0xc4, 0x45, 0xc7, 0x0d, 0xf7, 0xa9, 0xc7, 0xb4, + 0x8b, 0xf8, 0x90, 0x9e, 0x4f, 0x84, 0x37, 0xa2, 0xb1, 0xa9, 0x03, 0x7e, 0xbe, 0x12, 0x4f, 0x18, + 0x61, 0xc2, 0xb3, 0xe4, 0x96, 0x80, 0x5e, 0x72, 0xe2, 0x32, 0xc9, 0x93, 0x2f, 0x20, 0x45, 0xee, + 0xc9, 0x67, 0xcb, 0x10, 0x46, 0x94, 0x9c, 0x1c, 0xea, 0x07, 0x1f, 0xd9, 0x9f, 0x87, 0x53, 0x3c, + 0xf1, 0x5a, 0x12, 0xd4, 0x26, 0x91, 0x18, 0x3f, 0x9e, 0x9f, 0xd2, 0x80, 0xbd, 0x17, 0x91, 0x56, + 0xe2, 0x85, 0xe9, 0x5c, 0x9d, 0x4f, 0x61, 0x50, 0x4d, 0xd8, 0x31, 0x76, 0xe4, 0x82, 0x38, 0x4e, + 0xc4, 0x89, 0x6c, 0xd3, 0x75, 0xef, 0x67, 0xa6, 0xe6, 0xf6, 0x52, 0x2c, 0xc4, 0xb9, 0x58, 0x52, + 0x31, 0x55, 0x9b, 0x1f, 0x5f, 0x16, 0xc7, 0xa2, 0xf0, 0xcd, 0xd6, 0x5c, 0x3c, 0x5b, 0xc7, 0xe2, + 0xea, 0x92, 0x46, 0x6c, 0x45, 0x8d, 0x94, 0xa4, 0x44, 0x1c, 0xe7, 0x4f, 0x62, 0xaf, 0xca, 0x8b, + 0x15, 0x64, 0x05, 0xcf, 0xee, 0x96, 0x71, 0xbe, 0x70, 0xaa, 0x3b, 0xc6, 0x33, 0x54, 0xfc, 0xc4, + 0x60, 0x56, 0xc6, 0x1e, 0x6a, 0xc3, 0xc6, 0x13, 0x75, 0xf4, 0x80, 0xac, 0x8f, 0x07, 0x58, 0xf1, + 0x18, 0x2f, 0x3d, 0xc9, 0x6a, 0xa6, 0x68, 0xf3, 0x9a, 0x4f, 0x4c, 0x0c, 0x28, 0x7e, 0xb4, 0x7e, + 0xfb, 0xe9, 0x53, 0x5b, 0x2b, 0x6f, 0xc1, 0xc6, 0x16, 0x0a, 0xe7, 0x85, 0x4d, 0x46, 0x7a, 0xbb, + 0x6f, 0xf3, 0x73, 0xfa, 0x61, 0x13, 0xc4, 0xa6, 0xe4, 0xac, 0x38, 0x3d, 0x7f, 0xfc, 0x4c, 0x06, + 0xfd, 0xe2, 0x3b, 0x04, 0x44, 0x89, 0x01, 0xb7, 0xee, 0x05, 0xa6, 0xc7, 0x58, 0x7a, 0xf2, 0x24, + 0xc0, 0xe3, 0x37, 0xfc, 0xbc, 0x1e, 0x0d, 0x59, 0x0f, 0xd8, 0xd6, 0x86, 0x8a, 0xdc, 0xc4, 0xb3, + 0x61, 0x8e, 0x71, 0xcf, 0xd9, 0xf4, 0x5d, 0xa3, 0xad, 0x3f, 0x6b, 0xf6, 0xda, 0x6a, 0x70, 0x1f, + 0x54, 0xdd, 0x51, 0x5d, 0x76, 0x74, 0x1d, 0x8c, 0x10, 0x0c, 0x73, 0x6a, 0x76, 0x20, 0x91, 0x68, + 0xcc, 0x24, 0xd6, 0x2b, 0x41, 0xb5, 0xa9, 0xe0, 0xd1, 0xcf, 0x86, 0xfe, 0x8b, 0xab, 0x5a, 0x46, + 0x00, 0x9f, 0x1e, 0x2b, 0x01, 0x1e, 0x1b, 0xc8, 0xa6, 0x28, 0x54, 0x0b, 0x95, 0x7a, 0x53, 0x51, + 0xa7, 0x78, 0x6b, 0x07, 0x1e, 0xec, 0x20, 0x66, 0x70, 0x8a, 0x47, 0xf1, 0x74, 0x55, 0x57, 0x39, + 0x48, 0x52, 0x2b, 0x80, 0x69, 0x37, 0x86, 0x07, 0x9f, 0x4b, 0xc3, 0x55, 0x23, 0x6d, 0x48, 0xc0, + 0xb4, 0x9c, 0x40, 0x9d, 0x78, 0x71, 0x05, 0x4e, 0x87, 0x41, 0x98, 0x8e, 0x9b, 0x29, 0x6c, 0xfe, + 0x46, 0x2b, 0x82, 0x22, 0x58, 0x40, 0x0d, 0x55, 0x2b, 0x0f, 0x45, 0x0f, 0x09, 0xe1, 0x99, 0x1f, + 0x59, 0x6d, 0x1a, 0x86, 0xf3, 0x2c, 0x5f, 0xa6, 0xda, 0xd0, 0x3a, 0x80, 0xb3, 0xae, 0x6e, 0xc1, + 0x67, 0xeb, 0x17, 0x57, 0xe9, 0x15, 0xf2, 0x9b, 0x3c, 0xbf, 0xc3, 0xf3, 0xf3, 0x75, 0xe3, 0xde, + 0xfd, 0xfb, 0xea, 0x05, 0x8c, 0xaa, 0x50, 0x8a, 0xd6, 0xbe, 0x75, 0x67, 0xed, 0x02, 0xaa, 0xc3, + 0xfe, 0x2b, 0xeb, 0x7d, 0x06, 0x16, 0x19, 0xb4, 0xc6, 0xaa, 0x8c, 0xa6, 0x13, 0xc3, 0x40, 0x39, + 0x8f, 0xc9, 0xd0, 0x01, 0xc3, 0x8b, 0x69, 0x28, 0x01, 0x03, 0x74, 0x6e, 0x0d, 0x99, 0x6f, 0xca, + 0xe0, 0x80, 0xb8, 0xc4, 0x5f, 0xb9, 0x4b, 0xaa, 0x90, 0xe4, 0x55, 0x81, 0x4b, 0x17, 0x71, 0xc0, + 0x4e, 0xa1, 0x76, 0x28, 0x6d, 0x24, 0xd7, 0x89, 0x2e, 0x2f, 0xd6, 0x68, 0xc2, 0x43, 0x93, 0xf7, + 0x61, 0x8d, 0x50, 0x64, 0xb9, 0x56, 0xb0, 0x45, 0x7b, 0x0f, 0x9e, 0x09, 0x52, 0x96, 0x52, 0x97, + 0x4a, 0xf3, 0xc8, 0xd0, 0x0b, 0x37, 0x55, 0x38, 0xf4, 0x62, 0x8a, 0x44, 0xd7, 0x41, 0x9a, 0xbd, + 0x1b, 0xf4, 0x6d, 0x48, 0xa3, 0xc3, 0x2c, 0x40, 0x2b, 0x18, 0x2e, 0x6c, 0x3c, 0xf4, 0x58, 0xd2, + 0xc1, 0xe4, 0x1a, 0x8b, 0xd1, 0x57, 0x65, 0x35, 0xc2, 0xfd, 0x17, 0x7a, 0x0f, 0x8a, 0x6c, 0x6d, + 0xab, 0x8d, 0xad, 0x96, 0xda, 0xd1, 0xbf, 0xf6, 0xe9, 0xbe, 0xb0, 0x3e, 0xcd, 0x6a, 0x60, 0x56, + 0xb3, 0x01, 0x79, 0xad, 0x1d, 0xb5, 0xbd, 0x93, 0xcb, 0x6b, 0x62, 0x5e, 0xa3, 0xd3, 0x85, 0x32, + 0x6a, 0xb3, 0xdd, 0x15, 0x79, 0x16, 0xd3, 0xd6, 0x34, 0x73, 0xa7, 0xa9, 0xb6, 0xb7, 0xd5, 0xd6, + 0xf6, 0xd7, 0x38, 0xdb, 0xfd, 0x4b, 0xea, 0xc5, 0xff, 0xbc, 0x0a, 0xbe, 0xe8, 0x5f, 0x63, 0x15, + 0xbf, 0x1b, 0xfc, 0xbb, 0x49, 0xbf, 0xcd, 0x2f, 0xa3, 0x6a, 0xe7, 0x6b, 0xac, 0x5c, 0x52, 0x99, + 0xaf, 0xd8, 0x55, 0xad, 0xa3, 0x00, 0xaf, 0x8b, 0xc2, 0x8f, 0xc3, 0x42, 0xa7, 0x2a, 0x08, 0x99, + 0xf3, 0xe7, 0x9f, 0x64, 0xd7, 0x68, 0x3c, 0x7d, 0xda, 0x46, 0xe9, 0xab, 0x10, 0x5e, 0xc6, 0xeb, + 0x35, 0xf3, 0xef, 0xd5, 0xed, 0x5f, 0xdc, 0x5e, 0xe6, 0x15, 0xb9, 0x15, 0x69, 0x66, 0x30, 0x4a, + 0x86, 0x8c, 0xd6, 0xa6, 0x12, 0xde, 0x64, 0xb7, 0x52, 0x9c, 0x1c, 0x09, 0xd6, 0x55, 0xee, 0x10, + 0xc4, 0xbf, 0x45, 0x0e, 0x55, 0xde, 0x7a, 0xd5, 0xad, 0xb7, 0xc1, 0x4c, 0x56, 0xab, 0x71, 0x9c, + 0x1e, 0xa2, 0x2d, 0x98, 0x0b, 0x3c, 0xbe, 0xca, 0xb8, 0xcb, 0x0c, 0x2f, 0xe3, 0x22, 0xdd, 0x7e, + 0x2b, 0xf7, 0xb8, 0x16, 0xa6, 0x77, 0xde, 0x40, 0x02, 0x28, 0x78, 0x1b, 0xe3, 0x29, 0x3c, 0xf7, + 0x4e, 0xa1, 0xdc, 0xf9, 0x6c, 0x88, 0x56, 0x3a, 0x03, 0x77, 0x4c, 0x93, 0xd6, 0x20, 0x93, 0x8b, + 0x69, 0xb2, 0xb0, 0x07, 0x3c, 0x71, 0x0d, 0x3a, 0xc0, 0x8d, 0xf1, 0x39, 0xd0, 0x53, 0x4c, 0x59, + 0x83, 0xe3, 0x67, 0xf6, 0xb2, 0x80, 0xfb, 0x34, 0x69, 0x0d, 0x92, 0x9f, 0x4c, 0xcb, 0x42, 0xb2, + 0x0d, 0x11, 0x6b, 0x90, 0x7e, 0xe0, 0x4d, 0xf0, 0x28, 0x43, 0x0e, 0xf6, 0x84, 0x27, 0xae, 0xf7, + 0xcb, 0x04, 0x4f, 0x32, 0x0f, 0x7b, 0x40, 0x93, 0xd6, 0x21, 0x41, 0x65, 0x5b, 0xad, 0xe7, 0x79, + 0x50, 0x96, 0xb6, 0x06, 0x4b, 0xa3, 0xd6, 0x3c, 0xf9, 0x31, 0x25, 0x0b, 0x97, 0x0c, 0x8c, 0x14, + 0x26, 0x93, 0x1d, 0xc7, 0xcc, 0x9f, 0x15, 0x49, 0xf4, 0x04, 0x61, 0x14, 0xcc, 0xe9, 0x2e, 0x25, + 0xc2, 0xdd, 0x8b, 0x6b, 0x9e, 0x69, 0x70, 0x67, 0x09, 0x57, 0xd6, 0xe9, 0xf5, 0x1d, 0xf4, 0x0d, + 0x6c, 0xbe, 0x6d, 0x55, 0xd0, 0xfc, 0xd2, 0x07, 0x92, 0xfa, 0xca, 0xe9, 0xa1, 0x78, 0x23, 0x4d, + 0x7c, 0x96, 0xab, 0x12, 0x4b, 0x57, 0x65, 0x70, 0x30, 0xf3, 0xa9, 0xb6, 0xd5, 0x7b, 0x1c, 0x58, + 0x55, 0xfe, 0x09, 0x9c, 0xd3, 0x98, 0xb9, 0x6f, 0xc7, 0x80, 0x17, 0x75, 0xcb, 0x32, 0x18, 0x08, + 0x0f, 0x20, 0x5f, 0x30, 0xf0, 0x9e, 0x5d, 0xb2, 0xed, 0x63, 0x6c, 0xf1, 0x21, 0xd3, 0x11, 0x53, + 0x89, 0x93, 0x35, 0x8d, 0x9f, 0xf3, 0xfd, 0xd7, 0xd2, 0x05, 0xad, 0x5c, 0x32, 0x3d, 0xc4, 0x18, + 0xf3, 0xbd, 0x67, 0x97, 0xbd, 0xcb, 0xcc, 0x3d, 0x4c, 0xeb, 0x55, 0x27, 0x8b, 0x63, 0x25, 0x35, + 0xdf, 0xdf, 0xae, 0x38, 0x71, 0x5a, 0xde, 0x7c, 0x7a, 0x3c, 0xf4, 0x52, 0xcd, 0x5d, 0x0b, 0x65, + 0xc7, 0xf9, 0xd8, 0x24, 0x4b, 0x1d, 0x92, 0x3f, 0x71, 0xcd, 0xc2, 0x14, 0xc9, 0x90, 0xd6, 0xf0, + 0xfe, 0xdd, 0x4a, 0x22, 0x96, 0x3e, 0x53, 0xff, 0x05, 0xfe, 0x9b, 0xe0, 0xf1, 0xff, 0xce, 0xef, + 0xe7, 0x91, 0xcf, 0x9f, 0xe3, 0x91, 0x4f, 0x2a, 0x27, 0xe8, 0xb7, 0x83, 0x05, 0xb3, 0xf3, 0x0d, + 0xb1, 0xa3, 0xdc, 0x3f, 0xaf, 0xc4, 0x8d, 0x08, 0x45, 0xb6, 0x2a, 0xb1, 0x38, 0xee, 0x7d, 0xa9, + 0x64, 0x1d, 0x74, 0xca, 0x61, 0x1b, 0x3c, 0x3b, 0xb5, 0x84, 0x04, 0xd0, 0x4c, 0xee, 0xfc, 0x2b, + 0x56, 0xce, 0x68, 0xc6, 0xa3, 0x02, 0x81, 0x69, 0x59, 0x61, 0x05, 0x08, 0x53, 0x14, 0x52, 0x7e, + 0x25, 0x06, 0x8d, 0x00, 0x2a, 0x65, 0x65, 0x7a, 0x8f, 0x02, 0xfb, 0x62, 0x7e, 0x05, 0x8c, 0x8b, + 0xad, 0x82, 0xd7, 0xcf, 0x87, 0xef, 0x13, 0x63, 0x9d, 0xdb, 0xe0, 0xef, 0x96, 0xb1, 0x66, 0x5d, + 0xa0, 0x7e, 0x4f, 0x77, 0xe5, 0xb8, 0x00, 0x93, 0x72, 0x29, 0x31, 0xde, 0xc9, 0x65, 0x33, 0x69, + 0xd3, 0x6b, 0xb1, 0x00, 0x59, 0x8b, 0x02, 0x8b, 0xac, 0x75, 0xc1, 0x99, 0x85, 0xe6, 0xf0, 0x32, + 0x9c, 0x2c, 0xa1, 0xc4, 0x41, 0x60, 0xf0, 0x28, 0xf1, 0x16, 0xa9, 0x8b, 0x23, 0xe3, 0x4b, 0x56, + 0x29, 0x7c, 0xcd, 0xc6, 0x5e, 0xf9, 0xfb, 0x56, 0x92, 0x0b, 0x50, 0x18, 0xdd, 0xca, 0x86, 0xed, + 0xba, 0x8c, 0x81, 0x78, 0xe1, 0x95, 0x10, 0x67, 0x27, 0x83, 0x63, 0xf0, 0xce, 0xed, 0x44, 0xc2, + 0x9e, 0xb1, 0x0b, 0x23, 0x32, 0x34, 0xcb, 0xcb, 0x9c, 0x01, 0xbc, 0x12, 0x20, 0x42, 0x56, 0xec, + 0xe4, 0xf0, 0xb1, 0x22, 0x50, 0x39, 0x60, 0xa7, 0x12, 0xf9, 0x05, 0x1d, 0x84, 0xa1, 0x61, 0x1a, + 0x89, 0xd2, 0xc3, 0x4b, 0x85, 0x20, 0x1f, 0xa5, 0xb0, 0xb0, 0xa1, 0x53, 0xe6, 0x07, 0x1a, 0x61, + 0x00, 0x98, 0x7f, 0xfe, 0x09, 0x24, 0xc2, 0x9b, 0x46, 0xca, 0xca, 0xa9, 0x29, 0x24, 0x10, 0x34, + 0xdd, 0xf7, 0x69, 0x90, 0xb2, 0x1b, 0x61, 0x92, 0x1a, 0x04, 0x2a, 0x05, 0xbe, 0x95, 0x4c, 0x1e, + 0xe4, 0xc3, 0xac, 0x35, 0x2d, 0xaa, 0xae, 0x0d, 0x35, 0x3a, 0x64, 0x61, 0xc8, 0xe0, 0x70, 0xfb, + 0x9e, 0x1e, 0xd3, 0x02, 0xd8, 0xdf, 0x67, 0xb9, 0x6e, 0xb0, 0x8a, 0x7a, 0xa5, 0x35, 0x64, 0xa7, + 0x44, 0x84, 0x0a, 0xe0, 0x05, 0xd2, 0x01, 0x5f, 0xbd, 0xbf, 0x28, 0x4a, 0x20, 0x63, 0xa5, 0x18, + 0x85, 0xf5, 0xfa, 0x13, 0x43, 0xd2, 0x71, 0x49, 0x89, 0x5f, 0xd5, 0x23, 0xe9, 0x1b, 0x00, 0x54, + 0xb8, 0x56, 0x84, 0x03, 0xe3, 0xcc, 0x4c, 0x5e, 0xf0, 0x78, 0x46, 0x3a, 0x55, 0x02, 0x9e, 0xad, + 0xb9, 0xcb, 0x93, 0xc5, 0x85, 0x2b, 0x26, 0xde, 0xc9, 0xb6, 0x36, 0xd8, 0x73, 0x03, 0x9c, 0xdd, + 0xae, 0x74, 0x27, 0x10, 0x5e, 0x5a, 0xc7, 0x59, 0x5f, 0x54, 0x54, 0x1c, 0x5c, 0xe2, 0xd9, 0x78, + 0x26, 0x24, 0xa7, 0xb1, 0x70, 0x12, 0x88, 0xe7, 0x29, 0x6a, 0xa2, 0x34, 0xcc, 0xbc, 0xc6, 0xe0, + 0x77, 0x67, 0x15, 0x25, 0x39, 0x29, 0x88, 0x95, 0xe0, 0xc1, 0xc1, 0x3c, 0x1c, 0x5e, 0x69, 0x52, + 0x61, 0x19, 0x4a, 0x3a, 0xb7, 0xc0, 0x10, 0x17, 0xe6, 0x5b, 0x96, 0xab, 0xb9, 0x9b, 0xd3, 0x3a, + 0x85, 0x9b, 0xd3, 0xf2, 0x53, 0x12, 0x60, 0xa0, 0x64, 0x21, 0x46, 0xb2, 0xac, 0xda, 0x78, 0x8b, + 0x8d, 0x90, 0xe4, 0x42, 0xfd, 0xc0, 0x0b, 0x23, 0xe9, 0xce, 0xdf, 0x21, 0xca, 0x6c, 0x46, 0xe8, + 0x12, 0xec, 0x4a, 0x2c, 0xc9, 0x4c, 0xf3, 0xf7, 0xb8, 0xc2, 0x2c, 0x34, 0x1d, 0x83, 0x99, 0xce, + 0x81, 0x7d, 0xb9, 0x03, 0x4e, 0x95, 0xbe, 0x37, 0xe3, 0xeb, 0x25, 0x76, 0x5a, 0x95, 0x63, 0x42, + 0x6f, 0xf1, 0x02, 0xea, 0xd9, 0x55, 0xc2, 0x92, 0xc4, 0x9d, 0x82, 0xbc, 0x69, 0xa1, 0x09, 0x7a, + 0xd2, 0x9a, 0x4d, 0x47, 0xcf, 0x46, 0x12, 0x74, 0xe7, 0x84, 0xd6, 0x22, 0xef, 0x8c, 0x4e, 0xb4, + 0x55, 0x5a, 0x5d, 0x45, 0x0b, 0x71, 0x7e, 0xb4, 0xd2, 0x04, 0x97, 0xe2, 0xb2, 0x9f, 0x53, 0xb2, + 0xa9, 0x0e, 0xc9, 0xdc, 0x83, 0x76, 0xb9, 0xca, 0x5b, 0x0e, 0x28, 0xd6, 0x5b, 0x41, 0xcc, 0x13, + 0x43, 0x2f, 0x08, 0x7e, 0x44, 0xe0, 0xfa, 0x5f, 0x2a, 0x89, 0x3f, 0x98, 0xf5, 0xe2, 0x25, 0x78, + 0x26, 0xae, 0x95, 0x71, 0x12, 0xcb, 0xe5, 0xe4, 0x12, 0x9a, 0x78, 0x1c, 0xc2, 0xa2, 0x95, 0x7c, + 0x0c, 0xb0, 0xde, 0xce, 0xff, 0x77, 0xeb, 0x20, 0x7b, 0x66, 0xbb, 0xeb, 0x99, 0x90, 0x88, 0x59, + 0xe6, 0x4d, 0x49, 0x96, 0x79, 0x13, 0xcb, 0xf7, 0x78, 0x83, 0x3f, 0x38, 0xc8, 0x39, 0xcb, 0x8a, + 0xa1, 0xd8, 0xf7, 0x30, 0xad, 0xe0, 0x6d, 0xde, 0x47, 0xce, 0xea, 0x5f, 0x20, 0x68, 0xd2, 0xf5, + 0xec, 0x01, 0x11, 0x16, 0x58, 0xce, 0xe8, 0x5d, 0x35, 0x82, 0xa5, 0x3f, 0xec, 0x81, 0x70, 0xfb, + 0xb3, 0xa6, 0xc7, 0xaf, 0x9b, 0x45, 0x4f, 0x13, 0xfc, 0x4a, 0x5b, 0x5c, 0xac, 0x09, 0xe1, 0x13, + 0xba, 0x24, 0x16, 0x81, 0x38, 0x1c, 0xf8, 0x07, 0x44, 0x32, 0x6a, 0x0d, 0x43, 0x04, 0x55, 0x19, + 0x21, 0xa6, 0xce, 0x89, 0x65, 0x87, 0xf8, 0x6a, 0xe1, 0x35, 0x80, 0xca, 0xdd, 0x4c, 0xcb, 0xdf, + 0x9f, 0xb9, 0xab, 0xb5, 0x5a, 0xcf, 0x6a, 0x8d, 0x5e, 0x21, 0xb1, 0xdb, 0x7d, 0xa6, 0xf7, 0x1a, + 0x09, 0x0f, 0x73, 0x31, 0xf2, 0x7f, 0x10, 0x03, 0xef, 0x65, 0x1f, 0x15, 0x69, 0x9d, 0xcb, 0x2f, + 0xc8, 0xda, 0xf7, 0x31, 0xb4, 0xd4, 0x0d, 0x0e, 0xae, 0x1f, 0x1a, 0xc0, 0xf7, 0x72, 0x3b, 0x9c, + 0xfb, 0xa9, 0xf2, 0x4c, 0x20, 0x94, 0x7b, 0x62, 0x1d, 0x68, 0xb0, 0x20, 0x0b, 0x76, 0xd6, 0x0d, + 0x52, 0xfe, 0xe2, 0x38, 0xcb, 0x4f, 0x4f, 0xfc, 0xdf, 0x60, 0xd2, 0x23, 0x95, 0xd6, 0xdd, 0x21, + 0x5c, 0x46, 0x07, 0xdd, 0x41, 0x0c, 0xba, 0x7d, 0x47, 0xf4, 0x38, 0x3f, 0xcd, 0xf2, 0x3d, 0x3d, + 0x5e, 0x33, 0x02, 0x05, 0x12, 0xfc, 0x47, 0x59, 0x84, 0x62, 0x33, 0xec, 0x46, 0xb2, 0x1f, 0x68, + 0xe8, 0xe1, 0xc8, 0x9e, 0x5f, 0x4c, 0xf5, 0xa3, 0x2a, 0x6b, 0x5c, 0xb1, 0x85, 0x4f, 0x66, 0xe3, + 0x22, 0xc5, 0x20, 0x62, 0x3f, 0x05, 0x40, 0x2a, 0x32, 0xbb, 0x03, 0x2b, 0x64, 0x91, 0xbb, 0xa9, + 0xd0, 0xf8, 0xce, 0x14, 0x57, 0x4a, 0x82, 0xcb, 0xb2, 0xa6, 0x9d, 0x68, 0x60, 0x62, 0x8a, 0x65, + 0xad, 0x74, 0x96, 0x98, 0x5e, 0x4c, 0x6a, 0x2a, 0x91, 0xb1, 0x36, 0x18, 0xf0, 0xb6, 0x68, 0x9c, + 0x5b, 0x4c, 0xae, 0xcc, 0xcc, 0x44, 0x66, 0xb9, 0x40, 0xd7, 0xe0, 0x57, 0x1f, 0x92, 0x4c, 0xb5, + 0x11, 0xab, 0xb6, 0x10, 0x0e, 0xe7, 0xee, 0xf4, 0x02, 0x17, 0x06, 0xaa, 0x47, 0x6e, 0xc5, 0xc9, + 0x9d, 0x5e, 0x97, 0x71, 0x3e, 0xc6, 0x8b, 0xef, 0x0d, 0xaf, 0x92, 0x61, 0xac, 0x71, 0x72, 0x28, + 0x77, 0x07, 0x10, 0x0f, 0xc6, 0x09, 0xf7, 0x9a, 0x0e, 0x1b, 0x97, 0x16, 0x4b, 0xc8, 0xaf, 0xa6, + 0x4d, 0x67, 0x02, 0x09, 0x1a, 0x05, 0x3d, 0x58, 0xa0, 0x9f, 0xd3, 0x5e, 0xbc, 0x7f, 0xdf, 0x65, + 0x32, 0xf4, 0x12, 0x8b, 0xd1, 0xe8, 0x35, 0x95, 0xe2, 0x6a, 0x23, 0x6b, 0x28, 0x97, 0xb8, 0x99, + 0x60, 0xd4, 0xfb, 0x22, 0x13, 0x1b, 0x31, 0x93, 0x6f, 0x17, 0x04, 0x2f, 0x30, 0xb3, 0x02, 0xf8, + 0xfa, 0xba, 0x99, 0xe8, 0xb4, 0xe2, 0xe4, 0xe8, 0x5f, 0xd0, 0x6a, 0x62, 0xf2, 0xf5, 0x1e, 0x17, + 0xe8, 0xfe, 0x81, 0x98, 0xcc, 0xde, 0xee, 0xe1, 0x3a, 0x35, 0x7b, 0xde, 0x4b, 0x1c, 0xd3, 0xfc, + 0xd4, 0xec, 0x5f, 0xc0, 0x93, 0x4d, 0xfb, 0xfe, 0x90, 0xf2, 0xd9, 0xad, 0xb3, 0xc2, 0x80, 0xd5, + 0xdd, 0x13, 0x78, 0xf9, 0x92, 0x2c, 0xbe, 0xab, 0xac, 0x27, 0x6a, 0x2e, 0x59, 0xa0, 0x23, 0xa1, + 0x32, 0x06, 0x16, 0x36, 0x2b, 0x3c, 0x46, 0x3b, 0xe7, 0xe6, 0x95, 0xbf, 0xdb, 0x53, 0x37, 0xd8, + 0xc5, 0xab, 0x3c, 0xd8, 0x63, 0x0a, 0x09, 0x17, 0x70, 0x73, 0x41, 0xae, 0x9d, 0xb9, 0x6b, 0x6e, + 0x9d, 0x22, 0x2a, 0x56, 0x61, 0x43, 0x15, 0xec, 0x46, 0x14, 0x75, 0x6d, 0x4a, 0x8b, 0x29, 0x0e, + 0x84, 0x12, 0x90, 0xf8, 0xfb, 0x2d, 0x78, 0x3f, 0x67, 0x14, 0xc8, 0x69, 0x78, 0x6f, 0x97, 0xce, + 0x87, 0x31, 0x65, 0x26, 0xb0, 0x9c, 0x02, 0x3c, 0x5d, 0x60, 0xb6, 0x93, 0x89, 0x67, 0x44, 0x57, + 0xcd, 0xde, 0x86, 0x67, 0x33, 0xac, 0xa2, 0x8c, 0xf6, 0x12, 0xa6, 0xd0, 0xa6, 0x47, 0x55, 0xa9, + 0x4e, 0x2c, 0x4e, 0xd8, 0xe0, 0x0e, 0x80, 0xf2, 0xd9, 0x4a, 0x7a, 0x7e, 0x9c, 0xd1, 0x3a, 0x3b, + 0x71, 0xe9, 0xa4, 0xbe, 0xa4, 0x9d, 0xcc, 0x54, 0x3e, 0xf9, 0xde, 0x99, 0x4a, 0x36, 0x43, 0xd1, + 0x73, 0x72, 0x3a, 0x62, 0x45, 0xb3, 0x7a, 0xbc, 0x5a, 0x5c, 0x40, 0xbf, 0x7f, 0x4e, 0x6e, 0x5d, + 0x25, 0x2a, 0xeb, 0xf3, 0x45, 0x85, 0x49, 0x22, 0xce, 0xad, 0x94, 0xfa, 0x60, 0x5b, 0xd6, 0x4e, + 0x99, 0x52, 0x06, 0x09, 0x0d, 0x6a, 0xa7, 0xb7, 0xdc, 0x26, 0x6b, 0x8b, 0x8c, 0xad, 0x66, 0x81, + 0x93, 0xe6, 0x23, 0x38, 0x89, 0x33, 0xd2, 0xf7, 0xee, 0x78, 0x89, 0x54, 0x5b, 0x85, 0x81, 0x01, + 0x5d, 0x2f, 0xea, 0xba, 0x44, 0x17, 0xe4, 0xd7, 0x5e, 0xfe, 0x82, 0x32, 0xf8, 0x61, 0x3f, 0x24, + 0x77, 0xff, 0x24, 0x5f, 0x4b, 0xcb, 0x3b, 0xd1, 0x78, 0x93, 0x72, 0x57, 0x96, 0xe8, 0x15, 0x92, + 0x53, 0xcf, 0xb1, 0x48, 0x60, 0xc8, 0x37, 0xb8, 0x91, 0xee, 0x87, 0x4a, 0x2e, 0x7f, 0xb8, 0xe4, + 0x2d, 0xdb, 0xbc, 0xf7, 0x37, 0x85, 0x57, 0x18, 0x3a, 0xc1, 0xa8, 0x40, 0xd2, 0x86, 0xf4, 0xd7, + 0x2e, 0x6e, 0xf2, 0x69, 0x5f, 0xf4, 0xaf, 0xd4, 0xc8, 0xe7, 0x52, 0x84, 0xc9, 0xd7, 0x6e, 0x70, + 0xca, 0x6b, 0x59, 0x28, 0xd1, 0x58, 0x2b, 0xd1, 0x48, 0x4b, 0x2c, 0xb1, 0xc4, 0x6d, 0xa1, 0x44, + 0x73, 0xad, 0x44, 0x33, 0x2d, 0x71, 0x7b, 0x67, 0x6c, 0x76, 0xb9, 0x02, 0x06, 0xf4, 0xc4, 0x8c, + 0x08, 0xfb, 0xcd, 0x86, 0xae, 0x5e, 0xf4, 0xf6, 0x55, 0x09, 0x88, 0xfd, 0x18, 0xa8, 0xdb, 0x87, + 0xa1, 0xe2, 0xcb, 0xd2, 0x5b, 0x34, 0xe9, 0x06, 0xf7, 0xec, 0x2e, 0xf6, 0x01, 0x08, 0x97, 0xa3, + 0xbe, 0x22, 0x0e, 0xbb, 0x9f, 0x47, 0x4d, 0x77, 0xb5, 0xf7, 0xcb, 0xf7, 0xc1, 0x83, 0x38, 0x56, + 0xb2, 0xf7, 0xaf, 0x29, 0x99, 0x0d, 0x98, 0x2c, 0x2f, 0x79, 0x57, 0xe2, 0x69, 0x43, 0x9d, 0x36, + 0x57, 0xd9, 0x82, 0x53, 0x51, 0x8a, 0xee, 0x90, 0x15, 0xfb, 0x38, 0xfd, 0x9b, 0xd8, 0xb2, 0xaf, + 0x57, 0xd9, 0xb4, 0x66, 0x4c, 0xa7, 0x80, 0xf3, 0x7b, 0xa4, 0xbb, 0xfe, 0x4d, 0x0e, 0x8d, 0xcc, + 0x7d, 0x82, 0x4a, 0xcc, 0x67, 0xd0, 0x58, 0xf7, 0x68, 0x7f, 0x7b, 0x76, 0x64, 0x3a, 0xf6, 0x48, + 0x6c, 0xc1, 0x76, 0xc8, 0x78, 0xbd, 0x8a, 0xdc, 0xe5, 0x83, 0x4a, 0x4c, 0x05, 0x3d, 0x7b, 0x04, + 0x00, 0xf7, 0x49, 0x3c, 0xa2, 0xeb, 0x74, 0xa3, 0x24, 0x73, 0xcc, 0xb3, 0xa5, 0x75, 0x49, 0x7f, + 0x6c, 0x61, 0xe6, 0x39, 0xad, 0xee, 0x82, 0xce, 0x54, 0xca, 0x32, 0xc5, 0xad, 0x78, 0x4a, 0x6c, + 0x96, 0x53, 0x98, 0x96, 0xb6, 0xc8, 0xc8, 0x0b, 0xe8, 0x19, 0x38, 0xb6, 0x3f, 0x1f, 0x13, 0xf1, + 0xa2, 0x95, 0xcc, 0x4e, 0xf7, 0x7e, 0xf6, 0x50, 0x04, 0xdf, 0x16, 0x8a, 0xf7, 0x5c, 0xce, 0x43, + 0xb6, 0x89, 0xfc, 0x71, 0xdd, 0x89, 0x99, 0x83, 0xf2, 0x3d, 0xf5, 0xd2, 0xa4, 0xec, 0xd6, 0x53, + 0x94, 0xb2, 0x62, 0x6b, 0x6c, 0x7f, 0x36, 0x5f, 0xb8, 0x8e, 0x35, 0x5c, 0xd7, 0x5a, 0x65, 0xf9, + 0xd9, 0xd4, 0xe9, 0x9e, 0x76, 0xaa, 0x7c, 0x1f, 0x2b, 0xd8, 0xc9, 0x9d, 0x95, 0x8e, 0xe9, 0x87, + 0xa4, 0x27, 0x1e, 0xf8, 0x56, 0x6d, 0xbd, 0x88, 0xac, 0x9e, 0x20, 0xcb, 0xc5, 0x8a, 0xef, 0x85, + 0xcf, 0x6c, 0xc8, 0xd5, 0xe9, 0x3e, 0x5c, 0xec, 0x0a, 0xde, 0x9e, 0xca, 0xf1, 0x91, 0x22, 0x4b, + 0x15, 0x4f, 0xd3, 0x55, 0x79, 0x77, 0xc5, 0x46, 0x5b, 0x14, 0x4b, 0x71, 0x4d, 0x11, 0xdf, 0x90, + 0x1f, 0x79, 0x7e, 0x9c, 0x16, 0xcf, 0xec, 0xd4, 0xc7, 0x7e, 0xaf, 0x6f, 0xeb, 0xe5, 0x1c, 0x49, + 0xd8, 0x7f, 0xe7, 0x38, 0xd1, 0xd8, 0x8e, 0x4a, 0x95, 0x4f, 0xad, 0xab, 0x1a, 0xfb, 0xb9, 0x0a, + 0x55, 0xe3, 0xdb, 0x29, 0x05, 0xa6, 0xcd, 0x04, 0x53, 0x2e, 0x70, 0x99, 0xab, 0x3e, 0xef, 0x93, + 0xc7, 0x32, 0xf2, 0x89, 0x6e, 0x76, 0x92, 0x03, 0x11, 0xf4, 0x91, 0x73, 0x17, 0x2f, 0x65, 0x80, + 0xae, 0x7a, 0x9e, 0x13, 0xd9, 0xfe, 0x2a, 0xd9, 0xf2, 0x1e, 0x10, 0xc7, 0xc4, 0x33, 0x45, 0xfd, + 0xd2, 0x7d, 0xf5, 0xeb, 0x1b, 0x98, 0x2d, 0x78, 0x24, 0x8c, 0xae, 0x49, 0x6d, 0x92, 0x78, 0x40, + 0xfa, 0xad, 0xe8, 0x6d, 0x68, 0x36, 0x44, 0xb3, 0x4b, 0xc1, 0x43, 0x2e, 0xae, 0x4d, 0x3d, 0xbf, + 0x25, 0x3f, 0x4b, 0xbc, 0xb4, 0x63, 0xeb, 0x9a, 0xe5, 0x6e, 0x4d, 0xd2, 0x5f, 0x3b, 0x5a, 0x91, + 0x25, 0x82, 0x54, 0x14, 0x32, 0xe4, 0x7f, 0xd2, 0x71, 0x73, 0x08, 0x74, 0x87, 0x00, 0xaf, 0x7f, + 0x5b, 0xa3, 0xc7, 0x95, 0x7b, 0x8d, 0x7e, 0x72, 0x82, 0xa3, 0xf3, 0x8f, 0x3e, 0x95, 0xfb, 0x4e, + 0x72, 0x82, 0x89, 0x8d, 0x83, 0x5a, 0x17, 0xbb, 0xe0, 0xf9, 0xe6, 0x08, 0x7b, 0xa7, 0xf7, 0x23, + 0xb0, 0x05, 0xbc, 0x3a, 0x9e, 0x28, 0x69, 0xad, 0xb0, 0x9c, 0x2e, 0xbd, 0x1e, 0x3d, 0xd3, 0xb8, + 0x12, 0xe7, 0x24, 0x20, 0xf2, 0x5e, 0xc7, 0x85, 0x1e, 0x2a, 0xc1, 0xa1, 0x5c, 0xde, 0x7c, 0x27, + 0x1d, 0x24, 0x8c, 0xa6, 0x9d, 0xe2, 0xa8, 0xa1, 0xb2, 0xd4, 0xcf, 0x5f, 0x18, 0xdb, 0xe9, 0x74, + 0x24, 0x8a, 0x29, 0x5b, 0xdd, 0xbb, 0xeb, 0x39, 0x41, 0x9b, 0x1d, 0xca, 0xb8, 0x93, 0xa9, 0xfc, + 0xb6, 0xbb, 0x84, 0x0c, 0x8d, 0xb8, 0x6c, 0x57, 0x3d, 0xe7, 0x57, 0xf6, 0x1a, 0x54, 0xa5, 0x6c, + 0x93, 0x7b, 0xb2, 0xfb, 0x29, 0xd9, 0x72, 0x2c, 0xe2, 0xe6, 0xe7, 0x64, 0xe6, 0xc9, 0xe9, 0xee, + 0xa8, 0xfc, 0x8f, 0x5c, 0xad, 0xd6, 0x32, 0x2a, 0x6e, 0x12, 0x46, 0x35, 0x0c, 0x03, 0x7f, 0x7f, + 0xa3, 0xe4, 0x02, 0x7f, 0xee, 0x5d, 0xd9, 0x33, 0xfc, 0x51, 0xc7, 0x99, 0xe9, 0xcb, 0xe9, 0x91, + 0x5f, 0x9e, 0x08, 0x51, 0x75, 0xe6, 0x9c, 0x38, 0x44, 0x26, 0x01, 0x21, 0xb8, 0x5e, 0x24, 0xae, + 0xf5, 0x9c, 0xbb, 0xfe, 0xd5, 0x84, 0xde, 0xea, 0x49, 0xb3, 0xfe, 0xa9, 0x6b, 0x8d, 0x4e, 0x57, + 0x6b, 0xd4, 0x87, 0x73, 0xf0, 0x56, 0x58, 0x1a, 0x1f, 0xf3, 0xda, 0x37, 0x88, 0xcc, 0x0b, 0x35, + 0xe1, 0x5d, 0x42, 0x10, 0x83, 0xd4, 0x1f, 0x53, 0x23, 0xbf, 0xda, 0x2b, 0xac, 0x7f, 0x0b, 0x67, + 0x75, 0x39, 0x7f, 0x87, 0x8a, 0x94, 0xe9, 0x59, 0x9d, 0xff, 0x6a, 0x26, 0xbd, 0xc4, 0x92, 0xde, + 0x88, 0x8e, 0x11, 0x80, 0xe4, 0xb9, 0x8e, 0x67, 0x5a, 0xb9, 0x03, 0xc6, 0xe2, 0x37, 0xe1, 0x30, + 0xd4, 0x45, 0xa0, 0x3d, 0x09, 0x28, 0x44, 0x7f, 0x7a, 0xf3, 0xff, 0x00, 0x02, 0x19, 0x7a, 0xdc, + 0x92, 0x73, 0x00, 0x00 }; From 6cb18dc1943963df6b4dc6ec0964f149e5452027 Mon Sep 17 00:00:00 2001 From: Ewoud Date: Wed, 20 Nov 2024 11:02:58 +0100 Subject: [PATCH 4/5] CLion hints part1 add override and VarEvent argument by reference SysModule - add override to setup(), loop(), loop20ms(), loop1s() and loop10s, onOffChanged SysModUI - replace VarEvent varEvent with const VarEvent &varEvent (by reference instead of by value) -> saves 0.6% of flash! --- platformio.ini | 2 +- src/Sys/SysModFiles.h | 6 ++-- src/Sys/SysModInstances.h | 8 ++--- src/Sys/SysModModel.cpp | 2 +- src/Sys/SysModModel.h | 8 ++--- src/Sys/SysModNetwork.h | 6 ++-- src/Sys/SysModPins.h | 4 +-- src/Sys/SysModPrint.h | 4 +-- src/Sys/SysModSystem.h | 14 ++++----- src/Sys/SysModUI.h | 66 +++++++++++++++++++-------------------- src/Sys/SysModWeb.h | 10 +++--- src/User/UserModE131.h | 4 +-- src/User/UserModHA.h | 2 +- src/User/UserModLive.h | 13 ++++---- src/User/UserModMDNS.h | 2 +- src/User/UserModMPU6050.h | 4 +-- src/User/UserModMidi.h | 4 +-- 17 files changed, 79 insertions(+), 80 deletions(-) diff --git a/platformio.ini b/platformio.ini index 83056e59..87e5a58c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -77,7 +77,7 @@ lib_deps = [STARBASE_USERMOD_LIVE] build_flags = -D STARBASE_USERMOD_LIVE - -D EXTPRINTF=ppf + -D EXTPRINTF=ppf ;redirect Live Script prints to StarBase print lib_deps = https://github.com/ewowi/ESPLiveScript.git#main ;1.2.0. ewowi repo adds some proposed PR's and makes sure we don't have unexpected updates diff --git a/src/Sys/SysModFiles.h b/src/Sys/SysModFiles.h index 58d50514..34872087 100644 --- a/src/Sys/SysModFiles.h +++ b/src/Sys/SysModFiles.h @@ -25,9 +25,9 @@ class SysModFiles: public SysModule { std::vector fileTimes; SysModFiles(); - void setup(); - void loop20ms(); - void loop10s(); + void setup() override; + void loop20ms() override; + void loop10s() override; bool remove(const char * path); diff --git a/src/Sys/SysModInstances.h b/src/Sys/SysModInstances.h index 487bd931..8af7b545 100644 --- a/src/Sys/SysModInstances.h +++ b/src/Sys/SysModInstances.h @@ -110,7 +110,7 @@ class SysModInstances:public SysModule { SysModInstances() :SysModule("Instances") { }; - void setup() { + void setup() override { SysModule::setup(); Variable parentVar = ui->initSysMod(Variable(), name, 3000); @@ -291,7 +291,7 @@ class SysModInstances:public SysModule { ppf("UDP message sizes WLED:%d Star:%d WLED-Sync:%d\n", sizeof(UDPWLEDMessage), sizeof(UDPStarMessage), sizeof(UDPWLEDSyncMessage)); } - void onOffChanged() { + void onOffChanged() override { if (mdls->isConnected && isEnabled) { udpConnected = notifierUdp.begin(notifierUDPPort); //sync udp2Connected = instanceUDP.begin(instanceUDPPort); //instances @@ -307,7 +307,7 @@ class SysModInstances:public SysModule { } } - void loop20ms() { //20 ms instead of loop() tripples the loops/sec! + void loop20ms() override { //20 ms instead of loop() tripples the loops/sec! handleNotifications(); @@ -319,7 +319,7 @@ class SysModInstances:public SysModule { } - void loop10s() { + void loop10s() override { sendSysInfoUDP(); //temporary every second } diff --git a/src/Sys/SysModModel.cpp b/src/Sys/SysModModel.cpp index 35204f34..b7742527 100644 --- a/src/Sys/SysModModel.cpp +++ b/src/Sys/SysModModel.cpp @@ -630,7 +630,7 @@ void SysModModel::cleanUpModel(Variable parent, bool oPos, bool ro) { } } -Variable SysModModel::initVar(Variable parent, const char * id, const char * type, bool readOnly, VarEvent varEvent) { +Variable SysModModel::initVar(Variable parent, const char * id, const char * type, bool readOnly, const VarEvent &varEvent) { const char * parentId = parent.var["id"]; if (!parentId) parentId = "m"; //m=module JsonObject var = mdl->findVar(parentId, id); diff --git a/src/Sys/SysModModel.h b/src/Sys/SysModModel.h index d211ceb3..1bb876aa 100644 --- a/src/Sys/SysModModel.h +++ b/src/Sys/SysModModel.h @@ -354,12 +354,12 @@ class SysModModel: public SysModule { std::vector varEvents; SysModModel(); - void setup(); - void loop20ms(); - void loop1s(); + void setup() override; + void loop20ms() override; + void loop1s() override; //adds a variable to the model - Variable initVar(Variable parent, const char * id, const char * type, bool readOnly = true, VarEvent varEvent = nullptr); + Variable initVar(Variable parent, const char * id, const char * type, bool readOnly = true, const VarEvent &varEvent = nullptr); //scan all vars in the model and remove vars where var["o"] is negative or positive, if ro then remove ro values void cleanUpModel(Variable parent = Variable(), bool oPos = true, bool ro = false); diff --git a/src/Sys/SysModNetwork.h b/src/Sys/SysModNetwork.h index 27912929..1c91f561 100644 --- a/src/Sys/SysModNetwork.h +++ b/src/Sys/SysModNetwork.h @@ -21,10 +21,10 @@ class SysModNetwork:public SysModule { SysModNetwork(); //setup wifi an async webserver - void setup(); + void setup() override; - void loop1s(); - void loop10s(); + void loop1s() override; + void loop10s() override; // void handleConnections(); diff --git a/src/Sys/SysModPins.h b/src/Sys/SysModPins.h index 3a8f826d..c36fa396 100644 --- a/src/Sys/SysModPins.h +++ b/src/Sys/SysModPins.h @@ -34,8 +34,8 @@ class SysModPins:public SysModule { PinObject pinObjects[NUM_DIGITAL_PINS]; //all pins SysModPins(); - void setup(); - void loop20ms(); + void setup() override; + void loop20ms() override; void allocatePin(uint8_t pin, const char * owner, const char * details); void deallocatePin(uint8_t pin = UINT8_MAX, const char * owner = nullptr); diff --git a/src/Sys/SysModPrint.h b/src/Sys/SysModPrint.h index dbddc2e7..dc5e1b57 100644 --- a/src/Sys/SysModPrint.h +++ b/src/Sys/SysModPrint.h @@ -22,8 +22,8 @@ class SysModPrint:public SysModule { public: SysModPrint(); - void setup(); - void loop20ms(); + void setup() override; + void loop20ms() override; //generic print function void printf(const char * format, ...); diff --git a/src/Sys/SysModSystem.h b/src/Sys/SysModSystem.h index 67291050..af6bdb29 100644 --- a/src/Sys/SysModSystem.h +++ b/src/Sys/SysModSystem.h @@ -26,17 +26,17 @@ class SysModSystem:public SysModule { timebase = 0; SysModSystem(); - void setup(); - void loop(); - void loop10s(); + void setup() override; + void loop() override; + void loop10s() override; //from esp32Tools - bool sysTools_normal_startup(void); // FALSE if unusual startup code --> use next function to get more info - String sysTools_getRestartReason(void); // long string including restart codes from system, Core#0 and Core#1 (if availeable) + bool sysTools_normal_startup(); // FALSE if unusual startup code --> use next function to get more info + String sysTools_getRestartReason(); // long string including restart codes from system, Core#0 and Core#1 (if availeable) String sysTools_restart2String(int reasoncode); // helper for SysModSystem::addRestartReasonsSelect. Returns "(#) ReasonText" String sysTools_reset2String(int resetCode); // helper for SysModSystem::addResetReasonsSelect. Returns "shortResetReasonText (#)" - int sysTools_get_arduino_maxStackUsage(void); // to query max used stack of the arduino task. returns "-1" if unknown - int sysTools_get_webserver_maxStackUsage(void); // to query max used stack of the webserver task. returns "-1" if unknown + int sysTools_get_arduino_maxStackUsage(); // to query max used stack of the arduino task. returns "-1" if unknown + int sysTools_get_webserver_maxStackUsage(); // to query max used stack of the webserver task. returns "-1" if unknown //tbd: utility function ... (pka prepareHostname) void removeInvalidCharacters(char* hostname, const char *in) diff --git a/src/Sys/SysModUI.h b/src/Sys/SysModUI.h index 0060cd40..c1d04ca7 100644 --- a/src/Sys/SysModUI.h +++ b/src/Sys/SysModUI.h @@ -30,9 +30,9 @@ class SysModUI: public SysModule { SysModUI(); //serve index.htm - void setup(); + void setup() override; - void loop20ms(); + void loop20ms() override; //order: order%4 determines the column (WIP) Variable initAppMod(Variable parent, const char * id, int order = 0) { @@ -51,125 +51,125 @@ class SysModUI: public SysModule { return variable; } - Variable initTable(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initTable(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "table", value, 0, 0, readOnly, varEvent); } - Variable initText(Variable parent, const char * id, const char * value = nullptr, uint16_t max = 32, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initText(Variable parent, const char * id, const char * value = nullptr, uint16_t max = 32, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "text", value, 0, max, readOnly, varEvent); } //vector of text - Variable initTextVector(Variable parent, const char * id, std::vector *values, uint16_t max = 32, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initTextVector(Variable parent, const char * id, std::vector *values, uint16_t max = 32, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValueVector(parent, id, "text", values, 0, max, readOnly, varEvent); } - Variable initFileUpload(Variable parent, const char * id, const char * value = nullptr, uint16_t max = 32, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initFileUpload(Variable parent, const char * id, const char * value = nullptr, uint16_t max = 32, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "fileUpload", value, 0, max, readOnly, varEvent); } - Variable initPassword(Variable parent, const char * id, const char * value = nullptr, uint8_t max = 32, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initPassword(Variable parent, const char * id, const char * value = nullptr, uint8_t max = 32, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "password", value, 0, max, readOnly, varEvent); } //number is uint16_t for the time being (because it is called by uint16_t referenced vars...) - Variable initNumber(Variable parent, const char * id, uint16_t value = UINT16_MAX, int min = 0, int max = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initNumber(Variable parent, const char * id, uint16_t value = UINT16_MAX, int min = 0, int max = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "number", value, min, max, readOnly, varEvent); } //init a number using referenced value - Variable initNumber(Variable parent, const char * id, uint16_t * value = nullptr, int min = 0, int max = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initNumber(Variable parent, const char * id, uint16_t * value = nullptr, int min = 0, int max = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "number", value, min, max, readOnly, varEvent); } //init a number using a vector of integers - Variable initNumber(Variable parent, const char * id, std::vector *values, int min = 0, int max = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initNumber(Variable parent, const char * id, std::vector *values, int min = 0, int max = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "number", values, min, max, readOnly, varEvent); } - Variable initPin(Variable parent, const char * id, uint8_t value = UINT8_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initPin(Variable parent, const char * id, uint8_t value = UINT8_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "pin", value, 0, NUM_DIGITAL_PINS, readOnly, varEvent); } //referenced value - Variable initPin(Variable parent, const char * id, uint8_t *value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initPin(Variable parent, const char * id, uint8_t *value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "pin", value, 0, NUM_DIGITAL_PINS, readOnly, varEvent); } //type int! - Variable initProgress(Variable parent, const char * id, int value = UINT16_MAX, int min = 0, int max = 255, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initProgress(Variable parent, const char * id, int value = UINT16_MAX, int min = 0, int max = 255, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "progress", value, min, max, readOnly, varEvent); } - Variable initCoord3D(Variable parent, const char * id, Coord3D value = {UINT16_MAX, UINT16_MAX, UINT16_MAX}, int min = 0, int max = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initCoord3D(Variable parent, const char * id, Coord3D value = {UINT16_MAX, UINT16_MAX, UINT16_MAX}, int min = 0, int max = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "coord3D", value, min, max, readOnly, varEvent); } //init a Coord3D using referenced value - Variable initCoord3D(Variable parent, const char * id, Coord3D *value = nullptr, int min = 0, int max = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initCoord3D(Variable parent, const char * id, Coord3D *value = nullptr, int min = 0, int max = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "coord3D", value, min, max, readOnly, varEvent); } //init a range slider, range between 0 and 255! - Variable initSlider(Variable parent, const char * id, uint8_t value = UINT8_MAX, int min = 0, int max = 255, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initSlider(Variable parent, const char * id, uint8_t value = UINT8_MAX, int min = 0, int max = 255, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "range", value, min, max, readOnly, varEvent); } //init a range slider using referenced value - Variable initSlider(Variable parent, const char * id, uint8_t * value = nullptr, int min = 0, int max = 255, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initSlider(Variable parent, const char * id, uint8_t * value = nullptr, int min = 0, int max = 255, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "range", value, min, max, readOnly, varEvent); } - Variable initCanvas(Variable parent, const char * id, int value = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initCanvas(Variable parent, const char * id, int value = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "canvas", value, 0, 0, readOnly, varEvent); } //supports 3 state value: if UINT8_MAX it is indeterminated - Variable initCheckBox(Variable parent, const char * id, bool3State value = UINT8_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initCheckBox(Variable parent, const char * id, bool3State value = UINT8_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "checkbox", value, 0, 0, readOnly, varEvent); } //init a checkbox using referenced value - Variable initCheckBox(Variable parent, const char * id, bool3State *value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initCheckBox(Variable parent, const char * id, bool3State *value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "checkbox", value, 0, 0, readOnly, varEvent); } //a button never gets a value - Variable initButton(Variable parent, const char * id, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initButton(Variable parent, const char * id, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "button", false, 0, 0, readOnly, varEvent); } - // Variable initButton2(Variable parent, const char * id, bool readOnly = false, VarEvent varEvent = nullptr) { + // Variable initButton2(Variable parent, const char * id, bool readOnly = false, const VarEvent &varEvent = nullptr) { // // return initVarAndValue(parent, id, "button", false, 0, 0, readOnly, varEvent); // return JsonObject(); // } //int value ? - Variable initSelect(Variable parent, const char * id, uint8_t value = UINT8_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initSelect(Variable parent, const char * id, uint8_t value = UINT8_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "select", value, 0, 0, readOnly, varEvent); } //init a select using referenced value - Variable initSelect(Variable parent, const char * id, uint8_t * value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initSelect(Variable parent, const char * id, uint8_t * value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "select", value, 0, 0, readOnly, varEvent); } - Variable initIP(Variable parent, const char * id, int value = UINT16_MAX, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initIP(Variable parent, const char * id, int value = UINT16_MAX, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "ip", value, 0, 255, readOnly, varEvent); } - Variable initTextArea(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initTextArea(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "textarea", value, 0, 0, readOnly, varEvent); } - Variable initFileEdit(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initFileEdit(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "fileEdit", value, 0, 0, readOnly, varEvent); } //vector of fileEdit - Variable initFileEditVector(Variable parent, const char * id, std::vector *values, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initFileEditVector(Variable parent, const char * id, std::vector *values, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValueVector(parent, id, "fileEdit", values, 0, 0, readOnly, varEvent); } - Variable initURL(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, VarEvent varEvent = nullptr) { + Variable initURL(Variable parent, const char * id, const char * value = nullptr, bool readOnly = false, const VarEvent &varEvent = nullptr) { return initVarAndValue(parent, id, "url", value, 0, 0, readOnly, varEvent); } //initVarAndValue using basic value template - Variable initVarAndValue(Variable parent, const char * id, const char * type, Type value, int min = 0, int max = 255, bool readOnly = true, VarEvent varEvent = nullptr) { + Variable initVarAndValue(Variable parent, const char * id, const char * type, Type value, int min = 0, int max = 255, bool readOnly = true, const VarEvent &varEvent = nullptr) { Variable variable = mdl->initVar(parent, id, type, readOnly, varEvent); if (variable.initValue(min, max, 0)) { //no pointer @@ -181,7 +181,7 @@ class SysModUI: public SysModule { //initVarAndValue using referenced value template - Variable initVarAndValue(Variable parent, const char * id, const char * type, Type * value, int min = 0, int max = 255, bool readOnly = true, VarEvent varEvent = nullptr) { + Variable initVarAndValue(Variable parent, const char * id, const char * type, Type * value, int min = 0, int max = 255, bool readOnly = true, const VarEvent &varEvent = nullptr) { Variable variable = mdl->initVar(parent, id, type, readOnly, varEvent); if (variable.initValue(min, max, int(value))) { @@ -193,7 +193,7 @@ class SysModUI: public SysModule { //initVarAndValue using vector of values template - Variable initVarAndValue(Variable parent, const char * id, const char * type, std::vector *values, int min = 0, int max = 255, bool readOnly = true, VarEvent varEvent = nullptr) { + Variable initVarAndValue(Variable parent, const char * id, const char * type, std::vector *values, int min = 0, int max = 255, bool readOnly = true, const VarEvent &varEvent = nullptr) { Variable variable = mdl->initVar(parent, id, type, readOnly, varEvent); if (!variable.var["value"].isNull()) { @@ -213,7 +213,7 @@ class SysModUI: public SysModule { } //initVarAndValue using vector of values . WIP!!! - Variable initVarAndValueVector(Variable parent, const char * id, const char * type, std::vector *values, int min = 0, int max = 255, bool readOnly = true, VarEvent varEvent = nullptr) { + Variable initVarAndValueVector(Variable parent, const char * id, const char * type, std::vector *values, int min = 0, int max = 255, bool readOnly = true, const VarEvent &varEvent = nullptr) { Variable variable = mdl->initVar(parent, id, type, readOnly, varEvent); if (!variable.var["value"].isNull()) { diff --git a/src/Sys/SysModWeb.h b/src/Sys/SysModWeb.h index fc7b0544..ddc9a98b 100644 --- a/src/Sys/SysModWeb.h +++ b/src/Sys/SysModWeb.h @@ -65,13 +65,13 @@ class SysModWeb:public SysModule { SysModWeb(); - void setup(); - void loop20ms(); - void loop1s(); + void setup() override; + void loop20ms() override; + void loop1s() override; - void reboot(); + void reboot() override; - void connectedChanged(); + void connectedChanged() override; void wsEvent(WebSocket * ws, WebClient * client, AwsEventType type, void * arg, byte *data, size_t len); diff --git a/src/User/UserModE131.h b/src/User/UserModE131.h index 6046e338..3d131cd4 100644 --- a/src/User/UserModE131.h +++ b/src/User/UserModE131.h @@ -24,7 +24,7 @@ class UserModE131:public SysModule { isEnabled = false; //default not enabled }; - void setup() { + void setup() override { SysModule::setup(); Variable parentVar = ui->initUserMod(Variable(), name, 6201); @@ -119,7 +119,7 @@ class UserModE131:public SysModule { } } - void loop20ms() { + void loop20ms() override { if(!e131Created) { return; } diff --git a/src/User/UserModHA.h b/src/User/UserModHA.h index ba9d9c1e..af928d46 100644 --- a/src/User/UserModHA.h +++ b/src/User/UserModHA.h @@ -32,7 +32,7 @@ class UserModHA:public SysModule { } - void connectedChanged() { + void connectedChanged() override { ppf("connectedChanged\n"); if (mdls->isConnected) { // set device's details (optional) diff --git a/src/User/UserModLive.h b/src/User/UserModLive.h index f8cb5a34..3af2582d 100644 --- a/src/User/UserModLive.h +++ b/src/User/UserModLive.h @@ -37,11 +37,11 @@ class UserModLive: public SysModule { //testing class functions instead of static void showM(); - void loop(); + void loop() override; - void loop20ms(); + void loop20ms() override; - void loop1s(); + void loop1s() override; //return the id of the executable uint8_t compile(const char *fileName, const char *post = nullptr); @@ -76,9 +76,9 @@ external uint32_t millis(); external void pinMode(int a1, int a2); external void digitalWrite(int a1, int a2); external void delay(int a1); -external uint8_t slider1; -external uint8_t slider2; -external uint8_t slider3; +external uint8_t custom1Control; +external uint8_t custom2Control; +external uint8_t custom3Control; external CRGB hsv(int a1, int a2, int a3); external CRGB rgb(int a1, int a2, int a3); external uint8_t beatSin8(uint8_t a1, uint8_t a2, uint8_t a3); @@ -92,5 +92,4 @@ external void fadeToBlackBy(uint8_t a1); define width 32 define height 32 define NUM_LEDS 1024 -define panel_width 32 */ \ No newline at end of file diff --git a/src/User/UserModMDNS.h b/src/User/UserModMDNS.h index e10d467e..fb6da497 100644 --- a/src/User/UserModMDNS.h +++ b/src/User/UserModMDNS.h @@ -22,7 +22,7 @@ class UserModMDNS:public SysModule { UserModMDNS() :SysModule("MDNS") { }; - void setup() { + void setup() override { SysModule::setup(); escapedMac = WiFi.macAddress(); diff --git a/src/User/UserModMPU6050.h b/src/User/UserModMPU6050.h index f18217a7..8afdcaf0 100644 --- a/src/User/UserModMPU6050.h +++ b/src/User/UserModMPU6050.h @@ -32,7 +32,7 @@ class UserModMPU6050: public SysModule { isEnabled = false; //need to enable after fresh setup }; - void setup() { + void setup() override { SysModule::setup(); Variable parentVar = ui->initUserMod(Variable(), name, 6305); @@ -98,7 +98,7 @@ class UserModMPU6050: public SysModule { mdl->setValue("Motion Tracking", "ready", motionTrackingReady); } - void loop20ms() { // loop(): 700/s, loop20ms: 3000/s, loop1s(): 5500/s, disabled: 6000/s + void loop20ms() override { // loop(): 700/s, loop20ms: 3000/s, loop1s(): 5500/s, disabled: 6000/s // mpu.getMotion6(&accell.x, &accell.y, &accell.z, &gyro.x, &gyro.y, &gyro.z); // // display tab-separated accel/gyro x/y/z values // ppf("mpu6050 %d,%d,%d %d,%d,%d\n", accell.x, accell.y, accell.z, gyro.x, gyro.y, gyro.z); diff --git a/src/User/UserModMidi.h b/src/User/UserModMidi.h index 1d7d5acf..c1496b30 100644 --- a/src/User/UserModMidi.h +++ b/src/User/UserModMidi.h @@ -18,7 +18,7 @@ class UserModMidi:public SysModule { UserModMidi() :SysModule("Midi") { }; - void setup() { + void setup() override { SysModule::setup(); // UsbMidi_Setup(); @@ -34,7 +34,7 @@ class UserModMidi:public SysModule { } } - void loop() { + void loop() override { // if (esp32_usb_midi.available()) { // esp32_usb_midi.read(); // Read MIDI data // } From 51b5dd85589897ee80dd71fdc8b41ed5cb1a95ab Mon Sep 17 00:00:00 2001 From: Ewoud Date: Sun, 24 Nov 2024 13:42:13 +0100 Subject: [PATCH 5/5] CLion recommendations part 2 - add inline to distance - add const to functions or local vars - use vector.empty instead of size()!=0 - use const type &var - use strtol instead of atoi - use nullptr instead of NULL - use (bool3State) type cast for initCheckBox - use explicit for 1 parameter constructors - move declarations where vars are used --- .gitignore | 3 +- misc/model.json | 2 +- misc/testOutput.txt | 60 +++++++++++++++++------------------ platformio.ini | 2 +- src/Sys/SysModFiles.cpp | 2 +- src/Sys/SysModInstances.h | 14 ++++----- src/Sys/SysModModel.cpp | 10 +++--- src/Sys/SysModModel.h | 66 +++++++++++++++++++-------------------- src/Sys/SysModNetwork.cpp | 22 ++++++------- src/Sys/SysModPins.cpp | 2 +- src/Sys/SysModPins.h | 2 +- src/Sys/SysModPrint.cpp | 6 ++-- src/Sys/SysModSystem.cpp | 15 +++++---- src/Sys/SysModSystem.h | 4 +-- src/Sys/SysModUI.cpp | 22 ++++++------- src/Sys/SysModUI.h | 6 ++-- src/Sys/SysModWeb.cpp | 8 ++--- src/Sys/SysModWeb.h | 6 ++-- src/Sys/SysStarJson.cpp | 16 +++++----- src/Sys/SysStarJson.h | 4 +-- src/SysModule.h | 8 ++--- src/SysModules.cpp | 13 +++----- src/User/UserModE131.h | 2 +- src/User/UserModHA.h | 2 +- src/User/UserModLive.cpp | 8 ++--- src/User/UserModLive.h | 2 +- src/User/UserModMDNS.h | 2 +- src/User/UserModMPU6050.h | 2 +- src/User/UserModMidi.h | 4 ++- 29 files changed, 154 insertions(+), 161 deletions(-) diff --git a/.gitignore b/.gitignore index d67db0f1..092d05c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .pio node_modules .vscode -.DS_Store \ No newline at end of file +.DS_Store +.idea \ No newline at end of file diff --git a/misc/model.json b/misc/model.json index ce1551df..59c6e8db 100644 --- a/misc/model.json +++ b/misc/model.json @@ -1226,7 +1226,7 @@ "fun": 9 }, { - "id": "driverShow", + "id": "showDriver", "type": "checkbox", "ro": false, "value": false, diff --git a/misc/testOutput.txt b/misc/testOutput.txt index ec26fa5e..5215c986 100644 --- a/misc/testOutput.txt +++ b/misc/testOutput.txt @@ -2,42 +2,42 @@ Reading model from /model.json... (deserializeConfigFromFS) File /model.json open to read, size 6847 bytes Read model [{"id":"Preview","type":"appmod","ro":false,"o":1,"n":[{"id":"pview","type":"canvas","ro":false,"o":2,"loopFun":0,"interval":160}]},{"id":"Leds","type":"appmod","ro":false,"o":3,"n":[{"id":"on","type":"checkbox","ro":false,"o":4,"value":1,"dash":true},{"id":"brightness","type":"range","ro":false,"o":5,"value":10,"max":255,"log":true,"dash":true},{"id":"ledsTbl","type":"table","ro":false,"o":6,"n":[{"id":"pro","type":"select","ro":false,"o":13,"value":2,"dash":true},{"id":"ledsStart","type":"coord3D","ro":false,"o":14,"value":[{"x":0,"y":0,"z":0}],"max":127},{"id":"ledsEnd","type":"coord3D","ro":false,"o":15,"value":[{"x":32,"y":32,"z":0}],"max":127},{"id":"ledsSize","type":"coord3D","ro":true,"o":16,"max":127},{"id":"fxCount","type":"number","ro":true,"o":17,"max":255}]},{"id":"fx","type":"select","ro":false,"o":7,"value":13,"dash":true,"n":[{"id":"pal","type":"select","ro":false,"o":8,"value":4,"dash":true},{"id":"speed","type":"range","ro":false,"o":9,"min":1,"max":255,"value":128},{"id":"Offset X","type":"range","ro":false,"o":10,"max":255,"value":128},{"id":"Offset Y","type":"range","ro":false,"o":11,"max":255,"value":128},{"id":"Legs","type":"range","ro":false,"o":12,"min":1,"max":8,"value":4}]},{"id":"fixture","type":"select","ro":false,"o":18,"value":0},{"id":"fixSize","type":"coord3D","ro":true,"o":19,"max":127},{"id":"fixCount","type":"number","ro":true,"o":20,"max":255},{"id":"fps","type":"number","ro":false,"o":21,"value":60,"min":1,"max":999},{"id":"realFps","type":"text","ro":true,"o":22,"max":10}]},{"id":"Fixture Generator","type":"usermod","ro":false,"o":23,"n":[{"id":"fixtureGen","type":"select","ro":false,"o":24,"value":0,"n":[{"id":"ledCount","type":"number","ro":false,"o":25,"min":1,"max":4096,"value":64}]},{"id":"pinList","type":"text","ro":false,"o":26,"value":"16","max":32},{"id":"generate","type":"button","ro":false,"o":27}]},{"id":"Files","type":"sysmod","ro":false,"o":28,"n":[{"id":"files","type":"table","ro":false,"o":29,"n":[{"id":"name","type":"text","ro":true,"o":30,"max":32},{"id":"size","type":"number","ro":true,"o":31},{"id":"flLink","type":"url","ro":true,"o":32}]},{"id":"size","type":"text","ro":true,"o":33,"max":32}]},{"id":"System","type":"sysmod","ro":false,"o":34,"n":[{"id":"name","type":"text","ro":false,"o":35,"value":"StarBase16MB","max":32},{"id":"uptime","type":"text","ro":true,"o":36,"max":16},{"id":"loops","type":"text","ro":true,"o":37,"max":16},{"id":"chip","type":"text","ro":true,"o":38,"max":16},{"id":"heap","type":"text","ro":true,"o":39,"max":32},{"id":"stack","type":"text","ro":true,"o":40,"max":16},{"id":"reboot","type":"button","ro":false,"o":41},{"id":"reset 0","type":"select","ro":true,"o":42},{"id":"reset 1","type":"select","ro":true,"o":43},{"id":"restartReason","type":"select","ro":true,"o":44},{"id":"version","type":"text","ro":true,"o":45,"max":16}],"view":"vAll"},{"id":"Pins","type":"sysmod","ro":false,"o":46,"n":[{"id":"pins","type":"table","ro":true,"o":47,"n":[{"id":"pin","type":"number","ro":true,"o":48,"max":50},{"id":"owner","type":"text","ro":true,"o":49,"max":32},{"id":"details","type":"text","ro":true,"o":50,"max":256}]},{"id":"board","type":"canvas","ro":true,"o":51,"loopFun":1,"interval":1000},{"id":"pin19","type":"checkbox","ro":false,"o":52,"value":1}]},{"id":"Print","type":"sysmod","ro":false,"o":53,"n":[{"id":"output","type":"select","ro":false,"o":54,"value":1},{"id":"log","type":"textarea","ro":true,"o":55}]},{"id":"Web","type":"sysmod","ro":false,"o":56,"n":[{"id":"clients","type":"table","ro":true,"o":57,"n":[{"id":"nr","type":"number","ro":true,"o":58,"max":999},{"id":"ip","type":"text","ro":true,"o":59,"max":16},{"id":"full","type":"checkbox","ro":true,"o":60},{"id":"status","type":"select","ro":true,"o":61},{"id":"length","type":"number","ro":true,"o":62,"max":64}]},{"id":"wsCounter","type":"text","ro":true,"o":63,"max":16},{"id":"queueLength","type":"number","ro":true,"o":64,"max":64}]},{"id":"Network","type":"sysmod","ro":false,"o":65,"n":[{"id":"ssid","type":"text","ro":false,"o":66,"value":"ewtr","max":32},{"id":"password","type":"password","ro":false,"o":67,"value":"zonledmod"},{"id":"connect","type":"button","ro":false,"o":68},{"id":"nwstatus","type":"text","ro":true,"o":69,"max":32},{"id":"rssi","type":"text","ro":true,"o":70,"max":32}]},{"id":"DDP","type":"usermod","ro":false,"o":71,"n":[{"id":"ddpInst","type":"select","ro":false,"o":72}]},{"id":"ArtNet","type":"usermod","ro":false,"o":73,"n":[{"id":"artInst","type":"select","ro":false,"o":74}]},{"id":"E131","type":"usermod","ro":false,"o":75,"n":[{"id":"universe","type":"number","ro":false,"o":76,"value":1,"max":7},{"id":"channel","type":"number","ro":false,"o":77,"value":1,"min":1,"max":512,"dash":true},{"id":"patches","type":"table","ro":true,"o":78,"n":[{"id":"channel","type":"number","ro":true,"o":79,"min":1,"max":512},{"id":"variable","type":"text","ro":true,"o":80,"max":32},{"id":"max","type":"number","ro":true,"o":81},{"id":"value","type":"number","ro":true,"o":82,"max":255}]}]},{"id":"Model","type":"sysmod","ro":false,"o":83,"n":[{"id":"mSize","type":"text","ro":true,"o":84,"max":32},{"id":"saveModel","type":"button","ro":false,"o":85},{"id":"showObsolete","type":"checkbox","ro":false,"o":86,"value":0},{"id":"deleteObsolete","type":"button","ro":false,"o":87}]},{"id":"UI","type":"sysmod","ro":false,"o":88,"n":[{"id":"loops","type":"table","ro":true,"o":89,"n":[{"id":"variable","type":"text","ro":true,"o":90,"max":32},{"id":"#loops","type":"number","ro":true,"o":91,"max":999}]}]},{"id":"Instances","type":"sysmod","ro":false,"o":92,"n":[{"id":"instances","type":"table","ro":true,"o":93,"n":[{"id":"name","type":"text","ro":true,"o":94,"max":32},{"id":"link","type":"url","ro":true,"o":95},{"id":"IP","type":"text","ro":true,"o":96,"max":16},{"id":"type","type":"text","ro":true,"o":97,"max":16},{"id":"version","type":"number","ro":true,"o":98,"max":-1},{"id":"uptime","type":"number","ro":true,"o":99,"max":-1},{"id":"inson","type":"checkbox","ro":false,"o":101},{"id":"insbri","type":"range","ro":false,"o":102,"max":255,"log":true},{"id":"inspro","type":"select","ro":false,"o":103},{"id":"insfx","type":"select","ro":false,"o":104},{"id":"insdch","type":"number","ro":false,"o":106,"min":1,"max":512},{"id":"inssma","type":"select","ro":false,"o":107},{"id":"inspal","type":"select","ro":false,"o":105}]},{"id":"sma","type":"select","ro":false,"o":100,"value":0,"dash":true}]},{"id":"Modules","type":"sysmod","ro":false,"o":108,"n":[{"id":"Modules","type":"table","ro":true,"o":109,"n":[{"id":"name","type":"text","ro":true,"o":110,"max":32},{"id":"success","type":"checkbox","ro":true,"o":111},{"id":"enabled","type":"checkbox","ro":false,"o":112,"value":[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true]}]}]}] sendDataWs no ws -initVarAndUpdate onChange init bri v:10 +initVarAndValue onChange init bri v:10 Set Brightness to 10 -> b:10 r:1 -initVarAndUpdate onChange init fx v:13 +initVarAndValue onChange init effect v:13 setEffect 13 -initVar create new select var: fx->pal +initVar create new select var: effect->pal setValue changed pal ->4 onChange pal <- 4 -initVar create new range var: fx->speed +initVar create new range var: effect->speed setValue changed speed ->128 -initVar create new range var: fx->Offset X +initVar create new range var: effect->Offset X setValue changed Offset X ->128 -initVar create new range var: fx->Offset Y +initVar create new range var: effect->Offset Y setValue changed Offset Y ->128 -initVar create new range var: fx->Legs +initVar create new range var: effect->Legs setValue changed Legs ->4 -parentVar {"details":{"id":"fx","type":"select","ro":false,"o":-7,"value":13,"dash":true,"fun":4,"onChange":1,"n":[{"id":"pal","type":"select","ro":false,"o":-8,"fun":5,"onChange":2,"value":4,"dash":true},{"id":"speed","type":"range","ro":false,"o":-9,"min":1,"max":255,"value":128},{"id":"Offset X","type":"range","ro":false,"o":-10,"max":255,"value":128},{"id":"Offset Y","type":"range","ro":false,"o":-11,"max":255,"value":128},{"id":"Legs","type":"range","ro":false,"o":-12,"min":1,"max":8,"value":4}]}} -initVarAndUpdate onChange init pro v:2 -initVarAndUpdate onChange init ledsStart v:[{"x":0,"y":0,"z":0}] +parentVar {"details":{"id":"effect","type":"select","ro":false,"o":-7,"value":13,"dash":true,"fun":4,"onChange":1,"n":[{"id":"palette","type":"select","ro":false,"o":-8,"fun":5,"onChange":2,"value":4,"dash":true},{"id":"speed","type":"range","ro":false,"o":-9,"min":1,"max":255,"value":128},{"id":"Offset X","type":"range","ro":false,"o":-10,"max":255,"value":128},{"id":"Offset Y","type":"range","ro":false,"o":-11,"max":255,"value":128},{"id":"Legs","type":"range","ro":false,"o":-12,"min":1,"max":8,"value":4}]}} +initVarAndValue onChange init pro v:2 +initVarAndValue onChange init ledsStart v:[{"x":0,"y":0,"z":0}] Coord3D assign 0 0 0 ledsStart 0 0 0 - 7 7 0 -initVarAndUpdate onChange init ledsEnd v:[{"x":32,"y":32,"z":0}] +initVarAndValue onChange init ledsEnd v:[{"x":32,"y":32,"z":0}] Coord3D assign 32 32 0 ledsEnd onChange 0 0 0 - 32 32 0 Coord3D toJson 8,8,1 -> {"x":8,"y":8,"z":1} setValue changed ledsSize ->{"x":8,"y":8,"z":1} -callVarChangeFun ledsSize unknown type for {"x":8,"y":8,"z":1} +triggerEvent Change ledsSize unknown type for {"x":8,"y":8,"z":1} setValue changed fxCount ->64 -initVarAndUpdate onChange init fixture v:0 +initVarAndValue onChange init fixture v:0 seqNrToName: 2DMatrix3232.json 9640 -fixture onChange send ws done {"pview":{"file":"/2DMatrix3232.json"}} +fixture onChange send ws done {"preview":{"file":"/2DMatrix3232.json"}} Coord3D toJson 8,8,1 -> {"x":8,"y":8,"z":1} setValue changed fixSize ->{"x":8,"y":8,"z":1} -callVarChangeFun fixSize unknown type for {"x":8,"y":8,"z":1} +triggerEvent Change fixSize unknown type for {"x":8,"y":8,"z":1} setValue changed fixCount ->64 -initVarAndUpdate onChange init fps v:60 -initVarAndUpdate onChange init fixtureGen v:0 +initVarAndValue onChange init fps v:60 +initVarAndValue onChange init fixtureGen v:0 initVar create new number var: fixtureGen->ledCount setValue changed ledCount ->64 parentVar {"details":{"id":"fixtureGen","type":"select","ro":false,"o":-24,"value":0,"fun":16,"onChange":8,"n":[{"id":"ledCount","type":"number","ro":false,"o":-25,"min":1,"max":4096,"value":64}]}} @@ -45,7 +45,7 @@ setValue changed reset 0 ->12 setValue changed reset 1 ->12 setValue changed restartReason ->3 version 24012822 Jan 28 2024 22:33:18 22:33:18 -initVarAndUpdate onChange init pin19 v:1 +initVarAndValue onChange init pin19 v:1 setValue changed log ->WIP setValue changed queueLength ->64 initVarAndUpdate onChange init universe v:1 @@ -53,8 +53,8 @@ initVarAndUpdate onChange init dch v:1 initVarAndUpdate onChange init showObsolete v:0 dash on 1 found dash bri 10 found -dash pro 2 found -dash fx 13 found +dash projection 2 found +dash effect 13 found dash pal 4 found dash dch 1 found dash sma 0 found @@ -72,11 +72,11 @@ StarJson found all what it was looking for 1030 >= 6 projectAndMap P:32x32x1 V:15x15x1 and P:1024 V:225 Coord3D toJson 15,15,1 -> {"x":15,"y":15,"z":1} setValue changed ledsSize ->{"x":15,"y":15,"z":1} -callVarChangeFun ledsSize unknown type for {"x":15,"y":15,"z":1} +triggerEvent Change ledsSize unknown type for {"x":15,"y":15,"z":1} setValue changed fxCount ->225 Coord3D toJson 32,32,1 -> {"x":32,"y":32,"z":1} setValue changed fixSize ->{"x":32,"y":32,"z":1} -callVarChangeFun fixSize unknown type for {"x":32,"y":32,"z":1} +triggerEvent Change fixSize unknown type for {"x":32,"y":32,"z":1} setValue changed fixCount ->1024 StarJson destructing FastLED.addLeds new 16: 0-1024 @@ -101,15 +101,15 @@ sendDataWs client full or not connected client: 1 ...126 q:0 l:12 s:1 (#:1) αWS Client disconnected client: 1 ...0 q:1 l:0 s:2 (#:0) αWS client connected client: 2 ...126 q:0 l:0 s:1 (#:1) αWS event data client: 2 ...126 q:0 l:15 s:1 (#:1) -αWS_EVT_DATA json {"pview":{"label":"Preview","comment":"Shows the fixture"}} +αWS_EVT_DATA json {"preview":{"label":"Preview","comment":"Shows the fixture"}} αWS_EVT_DATA info 48 / 3072 (1%) (1 0 2) αWS event data client: 2 ...126 q:0 l:15 s:1 (#:1) -αWS_EVT_DATA json {"on":{"label":"On/Off"},"brightness":{"label":"Brightness"},"pro":{"label":"Projection","comment":"How to project fx to fixture","options":["None","Random","Distance from point","Distance from center","Mirror","Reverse","Multiply","Kaleidoscope","Fun"]},"ledsStart":{"label":"Start"},"ledsEnd":{"label":"End"},"ledsSize":{"label":"Size"},"fxCount":{"label":"Count"}} +αWS_EVT_DATA json {"on":{"label":"On/Off"},"brightness":{"label":"Brightness"},"projection":{"label":"Projection","comment":"How to project fx to fixture","options":["None","Random","Distance from point","Distance from center","Mirror","Reverse","Multiply","Kaleidoscope","Fun"]},"start":{"label":"Start"},"end":{"label":"End"},"size":{"label":"Size"},"fxCount":{"label":"Count"}} αWS_EVT_DATA info 400 / 3072 (13%) (7 0 3) sendDataWs client full or not connected client: 2 ...126 q:0 l:15 s:1 (#:1) αWS event data client: 2 ...126 q:0 l:16 s:1 (#:1) αseqNrToName: 2DMatrix3232.json 9640 -αWS_EVT_DATA json {"ledsTbl":{"label":"Effects","comment":"List of effects (WIP)","value":[[2,[{"x":0,"y":0,"z":0}],[{"x":32,"y":32,"z":0}],{"x":15,"y":15,"z":1},225]]},"pal":{"label":"Palette","comment":"Colors","options":["CloudColors","LavaColors","OceanColors","ForestColors","RainbowColors","RainbowStripeColors","PartyColors","HeatColors"]},"fx":{"label":"Effect","comment":"Effect to show","options":["Solid 1D","Rainbow 1D","Rainbow with glitter 1D","Sinelon 1D","Running 1D","Confetti 1D","Beats per minute 1D","Juggle 1D","Ripples 3D","SphereMove 3D","Frizzles 2D","Lines 2D","DistortionWaves 2D","Octopus 2D","Lissajous 2D","Bouncing Balls 1D","RingRandomFlow 1D","GEQ 2D","AudioRings 1D","FreqMatrix 1D"]},"fixture":{"comment":"Fixture to display effect on","options":["2DMatrix3232.json","3DCube888.json","3DSideCube205.json"]},"pview":{"file":"/2DMatrix3232.json"},"fixSize":{"label":"Size"},"fixCount":{"label":"Count","comment":"Max 4096"},"fps":{"comment":"Frames per second"},"realFps":{"comment":"f(1024 leds)"}} +αWS_EVT_DATA json {"layers":{"label":"Effects","comment":"List of effects (WIP)","value":[[2,[{"x":0,"y":0,"z":0}],[{"x":32,"y":32,"z":0}],{"x":15,"y":15,"z":1},225]]},"palette":{"label":"Palette","comment":"Colors","options":["CloudColors","LavaColors","OceanColors","ForestColors","RainbowColors","RainbowStripeColors","PartyColors","HeatColors"]},"effect":{"label":"Effect","comment":"Effect to show","options":["Solid 1D","Rainbow 1D","Rainbow with glitter 1D","Sinelon 1D","Running 1D","Confetti 1D","Beats per minute 1D","Juggle 1D","Ripples 3D","SphereMove 3D","Frizzles 2D","Lines 2D","DistortionWaves 2D","Octopus 2D","Lissajous 2D","Bouncing Balls 1D","RingRandomFlow 1D","GEQ 2D","AudioRings 1D","FreqMatrix 1D"]},"fixture":{"comment":"Fixture to display effect on","options":["2DMatrix3232.json","3DCube888.json","3DSideCube205.json"]},"preview":{"file":"/2DMatrix3232.json"},"size":{"label":"Size"},"count":{"label":"Count","comment":"Max 4096"},"fps":{"comment":"Frames per second"},"realFps":{"comment":"f(1024 leds)"}} αWS_EVT_DATA info 1283 / 3072 (41%) (9 0 6) sendDataWs client full or not connected client: 2 ...126 q:0 l:16 s:1 (#:1) αWS event data client: 2 ...126 q:0 l:16 s:1 (#:1) @@ -126,7 +126,7 @@ sendDataWs client full or not connected client: 2 ...126 q:0 l:16 s:1 (#:1) αWS_EVT_DATA json {"pin":{"label":"Pin"},"owner":{"label":"Owner"},"details":{"label":"Details"},"pins":{"label":"Pins","comment":"List of pins","value":[[16,"Leds","0-1023"]]},"board":{"label":"Board layout","comment":"WIP"}} αWS_EVT_DATA info 284 / 3072 (9%) (5 0 4) αWS event data client: 2 ...126 q:0 l:16 s:1 (#:1) -αWS_EVT_DATA json {"output":{"label":"Output","comment":"System log to Serial or Net print (WIP)","options":["No","Serial","UI","192.168.8.126"]},"log":{"comment":"Show the printed log"}} +αWS_EVT_DATA json {"output":{"label":"Output","comment":"System log to Serial or Net print (WIP)","options":["No","Serial","UI","192.168.1.126"]},"log":{"comment":"Show the printed log"}} αWS_EVT_DATA info 174 / 3072 (5%) (2 0 3) sendDataWs client full or not connected client: 2 ...126 q:0 l:16 s:1 (#:1) αWS event data client: 2 ...126 q:0 l:16 s:1 (#:1) @@ -140,10 +140,10 @@ instances updateNode 132 αWS_EVT_DATA json {"password":{"label":"Password"},"connect":{"comment":"Force reconnect (loose current connection)"},"nwstatus":{"label":"Status"},"rssi":{"label":"Wifi signal"}} αWS_EVT_DATA info 128 / 3072 (4%) (4 0 2) αWS event data client: 2 ...126 q:0 l:20 s:1 (#:1) -αWS_EVT_DATA json {"ddpInst":{"label":"Instance","comment":"Instance to send data","options":[[0,"no sync"],[132,"192.168.8.132 StarBaseRS"]]}} +αWS_EVT_DATA json {"instance":{"label":"Instance","comment":"Instance to send data","options":[[0,"no sync"],[132,"192.168.1.132 StarBaseRS"]]}} αWS_EVT_DATA info 184 / 3072 (5%) (1 0 4) αWS event data client: 2 ...126 q:0 l:20 s:1 (#:1) -αWS_EVT_DATA json {"artInst":{"label":"Instance","comment":"Instance to send data","options":[[0,"no sync"],[132,"192.168.8.132 StarBaseRS"]]}} +αWS_EVT_DATA json {"artInst":{"label":"Instance","comment":"Instance to send data","options":[[0,"no sync"],[132,"192.168.1.132 StarBaseRS"]]}} αWS_EVT_DATA info 184 / 3072 (5%) (1 0 4) αWS event data client: 2 ...126 q:0 l:20 s:1 (#:1) αWS_EVT_DATA json {"universe":{"label":"DMX Universe"},"channel":{"label":"DMX Channel","comment":"First channel"},"channel":{"label":"Channel"},"variable":{"label":"Variable"},"max":{"label":"Max"},"value":{"label":"Value"},"patches":{"label":"Vars to watch","comment":"List of instances","value":[[1,"brightness",255,0],[2,"fx",20,0],[3,"pal",8,0]]}} @@ -157,7 +157,7 @@ setValue var nr[0] value null not array, creating αWS_EVT_DATA json {"variable":{"label":"Name"},"#loops":{"label":"Loops p s"}} αWS_EVT_DATA info 64 / 3072 (2%) (2 0 2) sαWS event data client: 2 ...126 q:0 l:25 s:1 (#:1) -αWS_EVT_DATA json {"loops":{"label":"Variable loops","comment":"Loops initiated by a variable","value":[["pview",4],["board",0]]}} +αWS_EVT_DATA json {"vlTbl":{"label":"Variable loops","comment":"Loops initiated by a variable","value":[["preview",4],["board",0]]}} αWS_EVT_DATA info 172 / 3072 (5%) (1 0 4) etValue var ip[0] value null not array, creating αWS event data client: 2 ...126 q:0 l:25 s:1 (#:1) @@ -165,7 +165,7 @@ etValue var ip[0] value null not array, creating αWS_EVT_DATA info 464 / 3072 (15%) (9 0 3) setValue var full[0] value null not array, creating αWS event data client: 2 ...126 q:0 l:27 s:1 (#:1) -αWS_EVT_DATA json {"insfx":{"label":"Effect","comment":"Effect to show","options":["Solid 1D","Rainbow 1D","Rainbow with glitter 1D","Sinelon 1D","Running 1D","Confetti 1D","Beats per minute 1D","Juggle 1D","Ripples 3D","SphereMove 3D","Frizzles 2D","Lines 2D","DistortionWaves 2D","Octopus 2D","Lissajous 2D","Bouncing Balls 1D","RingRandomFlow 1D","GEQ 2D","AudioRings 1D","FreqMatrix 1D"]},"inspal":{"label":"Palette","comment":"Colors","options":["CloudColors","LavaColors","OceanColors","ForestColors","RainbowColors","RainbowStripeColors","PartyColors","HeatColors"]},"insdch":{"label":"DMX Channel","comment":"First channel"},"inssma":{"label":"Sync Master","comment":"Instance to sync from","options":[[0,"no sync"],[132,"192.168.8.132 StarBaseRS"]]},"instances":{"label":"Instances","comment":"List of instances","value":[["StarBaseRS","http://192.168.8.132","192.168.8.132","StarBase",24012818,8151,1,141,0,19,-1,1,0]]},"sma":{"label":"Sync Master","comment":"Instance to sync from","options":[[0,"no sync"],[132,"192.168.8.132 StarBaseRS"]]}} +αWS_EVT_DATA json {"insfx":{"label":"Effect","comment":"Effect to show","options":["Solid 1D","Rainbow 1D","Rainbow with glitter 1D","Sinelon 1D","Running 1D","Confetti 1D","Beats per minute 1D","Juggle 1D","Ripples 3D","SphereMove 3D","Frizzles 2D","Lines 2D","DistortionWaves 2D","Octopus 2D","Lissajous 2D","Bouncing Balls 1D","RingRandomFlow 1D","GEQ 2D","AudioRings 1D","FreqMatrix 1D"]},"inspal":{"label":"Palette","comment":"Colors","options":["CloudColors","LavaColors","OceanColors","ForestColors","RainbowColors","RainbowStripeColors","PartyColors","HeatColors"]},"insdch":{"label":"DMX Channel","comment":"First channel"},"inssma":{"label":"Sync Master","comment":"Instance to sync from","options":[[0,"no sync"],[132,"192.168.1.132 StarBaseRS"]]},"instances":{"label":"Instances","comment":"List of instances","value":[["StarBaseRS","http://192.168.1.132","192.168.1.132","StarBase",24012818,8151,1,141,0,19,-1,1,0]]},"sma":{"label":"Sync Master","comment":"Instance to sync from","options":[[0,"no sync"],[132,"192.168.1.132 StarBaseRS"]]}} αWS_EVT_DATA info 1301 / 3072 (42%) (6 0 4) setValue var status[0] value null not array, creating αWS event data client: 2 ...126 q:0 l:28 s:1 (#:1) diff --git a/platformio.ini b/platformio.ini index 87e5a58c..6c05bb62 100644 --- a/platformio.ini +++ b/platformio.ini @@ -85,7 +85,7 @@ lib_deps = build_flags = -D APP=StarBase -D PIOENV=$PIOENV - -D VERSION=24110711 ; Date and time (GMT!), update at every commit!! + -D VERSION=24112412 ; Date and time (GMT!), update at every commit!! -D LFS_THREADSAFE ; enables use of semaphores in LittleFS driver -D STARBASE_DEVMODE -mtext-section-literals ;otherwise [UserModLive::setup()]+0xa17): dangerous relocation: l32r: literal target out of range (try using text-section-literals) diff --git a/src/Sys/SysModFiles.cpp b/src/Sys/SysModFiles.cpp index ebd7bc51..ecf2cac6 100644 --- a/src/Sys/SysModFiles.cpp +++ b/src/Sys/SysModFiles.cpp @@ -28,7 +28,7 @@ SysModFiles::SysModFiles() :SysModule("Files") { void SysModFiles::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 2101); + const Variable parentVar = ui->initSysMod(Variable(), name, 2101); Variable tableVar = ui->initTable(parentVar, "files", nullptr, false, [this](EventArguments) { switch (eventType) { case onUI: diff --git a/src/Sys/SysModInstances.h b/src/Sys/SysModInstances.h index 8af7b545..cc71eb52 100644 --- a/src/Sys/SysModInstances.h +++ b/src/Sys/SysModInstances.h @@ -113,7 +113,7 @@ class SysModInstances:public SysModule { void setup() override { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 3000); + const Variable parentVar = ui->initSysMod(Variable(), name, 3000); Variable tableVar = ui->initTable(parentVar, "instances", nullptr, true); @@ -232,7 +232,7 @@ class SysModInstances:public SysModule { Variable insVariable = mdl->initVar(tableVar, columnVarID, variable.var["type"], false, [this](Variable insVariable, uint8_t rowNr, uint8_t eventType) { //extract the variable from insVariable.id() char pid[32]; strlcpy(pid, insVariable.id() + 3, sizeof(pid)); //+3 : remove ins - char * id = strtok(pid, "_"); if (id != NULL ) {strlcpy(pid, id, sizeof(pid)); id = strtok(NULL, "_");} //split pid and id + char * id = strtok(pid, "_"); if (id != nullptr ) {strlcpy(pid, id, sizeof(pid)); id = strtok(nullptr, "_");} //split pid and id Variable variable = Variable(mdl->findVar(pid, id)); switch (eventType) { //varEvent case onSetValue: @@ -331,10 +331,10 @@ class SysModInstances:public SysModule { char * token = strtok(copy, "-"); //before minus //check if group - if (token != NULL) { + if (token != nullptr) { // ppf("groupOfName 1:%s 2:%s 3:%s 4:%s 5:%s\n",name, strnstr(name, "-", 32), name, strtok(name, "-"), name?name:"X"); - token = strtok(NULL, "-"); //after - - if (token != NULL) { + token = strtok(nullptr, "-"); //after - + if (token != nullptr) { // ppf("groupOfName g:%s i:%s\n", copy, token); if (group) strlcpy(group, copy, sizeof(copy)); //group has same size! return true; @@ -778,9 +778,9 @@ class SysModInstances:public SysModule { char pid[32]; strlcpy(pid, pair.key().c_str(), sizeof(pid)); char * id = strtok(pid, "."); - if (id != NULL ) { + if (id != nullptr ) { strlcpy(pid, id, sizeof(pid)); //copy the id part - id = strtok(NULL, "."); //the rest after . + id = strtok(nullptr, "."); //the rest after . } Variable(mdl->findVar(pid, id)).setValueJV(pair.value()); diff --git a/src/Sys/SysModModel.cpp b/src/Sys/SysModModel.cpp index b7742527..facb3153 100644 --- a/src/Sys/SysModModel.cpp +++ b/src/Sys/SysModModel.cpp @@ -509,7 +509,7 @@ SysModModel::SysModModel() :SysModule("Model") { void SysModModel::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 4303); + const Variable parentVar = ui->initSysMod(Variable(), name, 4303); parentVar.var["s"] = true; //setup ui->initButton(parentVar, "saveModel", false, [this](EventArguments) { switch (eventType) { @@ -524,7 +524,7 @@ void SysModModel::setup() { #ifdef STARBASE_DEVMODE - ui->initCheckBox(parentVar, "showObsolete", false, false, [this](EventArguments) { switch (eventType) { + ui->initCheckBox(parentVar, "showObsolete", (bool3State)false, false, [this](EventArguments) { switch (eventType) { case onUI: variable.setComment("Show in UI (refresh)"); return true; @@ -625,7 +625,7 @@ void SysModModel::cleanUpModel(Variable parent, bool oPos, bool ro) { //recursive call if (!variable.children().isNull()) - cleanUpModel(var, oPos, ro); + cleanUpModel(variable, oPos, ro); } } } @@ -689,11 +689,11 @@ Variable SysModModel::initVar(Variable parent, const char * id, const char * typ var["fun"] = mdl->varEvents.size()-1; // } - if (varEvent(var, UINT8_MAX, onLoop)) { //test run if it supports loop + if (varEvent(variable, UINT8_MAX, onLoop)) { //test run if it supports loop //no need to check if already in... VarLoop loop; loop.loopFun = varEvent; - loop.var = var; + loop.variable = variable; ui->loopFunctions.push_back(loop); var["loopFun"] = ui->loopFunctions.size()-1; diff --git a/src/Sys/SysModModel.h b/src/Sys/SysModModel.h index 1bb876aa..fea87039 100644 --- a/src/Sys/SysModModel.h +++ b/src/Sys/SysModModel.h @@ -39,56 +39,56 @@ struct Coord3D { // return x != rhs.x || y != rhs.y || z != rhs.z; return !(*this==rhs); } - bool operator==(Coord3D rhs) { + bool operator==(const Coord3D rhs) const { return x == rhs.x && y == rhs.y && z == rhs.z; } - bool operator>=(Coord3D rhs) { + bool operator>=(const Coord3D rhs) const { return x >= rhs.x && y >= rhs.y && z >= rhs.z; } - bool operator<=(Coord3D rhs) { + bool operator<=(const Coord3D rhs) const { return x <= rhs.x && y <= rhs.y && z <= rhs.z; } - bool operator<(Coord3D rhs) { + bool operator<(const Coord3D rhs) const { return x < rhs.x && y < rhs.y && z < rhs.z; } - bool operator>=(int rhs) { + bool operator>=(const int rhs) const { return x >= rhs && y >= rhs && z >= rhs; } //assignments - Coord3D operator=(Coord3D rhs) { + Coord3D operator=(const Coord3D rhs) { // ppf("Coord3D assign %d,%d,%d\n", rhs.x, rhs.y, rhs.z); x = rhs.x; y = rhs.y; z = rhs.z; return *this; } - Coord3D operator+=(Coord3D rhs) { + Coord3D operator+=(const Coord3D rhs) { x += rhs.x; y += rhs.y; z += rhs.z; return *this; } - Coord3D operator-=(Coord3D rhs) { + Coord3D operator-=(const Coord3D rhs) { x -= rhs.x; y -= rhs.y; z -= rhs.z; return *this; } - Coord3D operator*=(Coord3D rhs) { + Coord3D operator*=(const Coord3D rhs) { x *= rhs.x; y *= rhs.y; z *= rhs.z; return *this; } - Coord3D operator/=(Coord3D rhs) { + Coord3D operator/=(const Coord3D rhs) { if (rhs.x) x /= rhs.x; if (rhs.y) y /= rhs.y; if (rhs.z) z /= rhs.z; return *this; } //Minus / delta (abs) - Coord3D operator-(Coord3D rhs) { + Coord3D operator-(const Coord3D rhs) const { Coord3D result; // result.x = x > rhs.x? x - rhs.x : rhs.x - x; // result.y = y > rhs.y? y - rhs.y : rhs.y - y; @@ -98,28 +98,28 @@ struct Coord3D { result.z = z - rhs.z; return result; } - Coord3D operator+(Coord3D rhs) { + Coord3D operator+(const Coord3D rhs) const { return Coord3D{x + rhs.x, y + rhs.y, z + rhs.z}; } - Coord3D operator*(Coord3D rhs) { + Coord3D operator*(const Coord3D rhs) const { return Coord3D{x * rhs.x, y * rhs.y, z * rhs.z}; } - Coord3D operator/(Coord3D rhs) { + Coord3D operator/(const Coord3D rhs) const { return Coord3D{x / rhs.x, y / rhs.y, z / rhs.z}; } - Coord3D operator%(Coord3D rhs) { + Coord3D operator%(const Coord3D rhs) const { return Coord3D{x % rhs.x, y % rhs.y, z % rhs.z}; } - Coord3D minimum(Coord3D rhs) { + Coord3D minimum(const Coord3D rhs) const { return Coord3D{min(x, rhs.x), min(y, rhs.y), min(z, rhs.z)}; } - Coord3D maximum(Coord3D rhs) { + Coord3D maximum(const Coord3D rhs) const { return Coord3D{max(x, rhs.x), max(y, rhs.y), max(z, rhs.z)}; } - Coord3D operator*(uint8_t rhs) { + Coord3D operator*(const uint8_t rhs) const { return Coord3D{x * rhs, y * rhs, z * rhs}; } - Coord3D operator/(uint8_t rhs) { + Coord3D operator/(const uint8_t rhs) const { return Coord3D{x / rhs, y / rhs, z / rhs}; } //move the coordinate one step closer to the goal, if difference in coordinates (used in GenFix) @@ -129,15 +129,15 @@ struct Coord3D { if (z != goal.z) z += (z= rhs.x || y >= rhs.y || z >= rhs.z; } }; @@ -209,31 +209,31 @@ class Variable { JsonObject var; Variable() {this->var = JsonObject();} //undefined variable - Variable(JsonObject var) {this->var = var;} + explicit Variable(JsonObject var) {this->var = var;} //core methods - const char *pid() {return var["pid"];} - const char *id() {return var["id"];} + const char *pid() const {return var["pid"];} + const char *id() const {return var["id"];} - JsonVariant value() {return var["value"];} - JsonVariant value(uint8_t rowNr) {return var["value"][rowNr];} + JsonVariant value() const {return var["value"];} + JsonVariant value(uint8_t rowNr) const {return var["value"][rowNr];} String valueString(uint8_t rowNr = UINT8_MAX); - int order() {return var["o"];} - void order(int value) {var["o"] = value;} + int order() const {return var["o"];} + void order(int value) const {var["o"] = value;} - bool readOnly() {return var["ro"];} + bool readOnly() const {return var["ro"];} void readOnly(bool value) {var["ro"] = value;} - JsonArray children() {return var["n"];} + JsonArray children() const {return var["n"];} - void defaultOrder(int value) {if (order() > -1000) order(- value); } //set default order (in range >=1000). Don't use auto generated order as order can be changed in the ui (WIP) + void defaultOrder(int value) const {if (order() > -1000) order(- value); } //set default order (in range >=1000). Don't use auto generated order as order can be changed in the ui (WIP) //recursively remove all value[rowNr] from children of var void removeValuesForRow(uint8_t rowNr); - JsonArray valArray() {if (var["value"].is()) return var["value"]; else return JsonArray(); } + JsonArray valArray() const {if (var["value"].is()) return var["value"]; else return JsonArray(); } //if variable is a table, loop through its rows void rows(std::function fun = nullptr); diff --git a/src/Sys/SysModNetwork.cpp b/src/Sys/SysModNetwork.cpp index 6fe25a7e..d29c344a 100644 --- a/src/Sys/SysModNetwork.cpp +++ b/src/Sys/SysModNetwork.cpp @@ -28,14 +28,14 @@ SysModNetwork::SysModNetwork() :SysModule("Network") {}; void SysModNetwork::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 3502); + const Variable parentVar = ui->initSysMod(Variable(), name, 3502); parentVar.var["s"] = true; //setup // Variable tableVar = ui->initTable(parentVar, "wfTbl", nullptr, false, [this](EventArguments) { //varEvent ro false: create and delete row possible // variable.setComment("List of defined and available Wifi APs"); // }); - Variable currentVar = ui->initCheckBox(parentVar, "wiFi", true, false, [this](EventArguments) { switch (eventType) { + Variable currentVar = ui->initCheckBox(parentVar, "wiFi", (bool3State)true, false, [this](EventArguments) { switch (eventType) { case onChange: if (variable.value().as()) initWiFiConnection(); @@ -81,7 +81,7 @@ void SysModNetwork::setup() { #ifdef STARBASE_ETHERNET - currentVar = ui->initCheckBox(parentVar, "ethernet", false, false, [this](EventArguments) { switch (eventType) { + currentVar = ui->initCheckBox(parentVar, "ethernet", (bool3State)false, false, [this](EventArguments) { switch (eventType) { case onLoop1s: //initEthernet not done in onChange as initEthernet needs a bit of a delay if (!ethActive && variable.getValue().as()) @@ -102,31 +102,31 @@ void SysModNetwork::setup() { mdl->setValueRowNr = rowNr; if (variable.value() == 0) {//manual - ui->initNumber(variable.var, "address", (uint16_t)0, 0, 255, false, [this](EventArguments) { switch (eventType) { + ui->initNumber(variable, "address", (uint16_t)0, 0, 255, false, [this](EventArguments) { switch (eventType) { case onChange: ethActive = false; return true; default: return false; }}); - ui->initPin(variable.var, "power", 14, false, [this](EventArguments) { switch (eventType) { + ui->initPin(variable, "power", 14, false, [this](EventArguments) { switch (eventType) { case onChange: ethActive = false; return true; default: return false; }}); - ui->initPin(variable.var, "mdc", 23, false, [this](EventArguments) { switch (eventType) { + ui->initPin(variable, "mdc", 23, false, [this](EventArguments) { switch (eventType) { case onChange: ethActive = false; return true; default: return false; }}); - ui->initPin(variable.var, "mdio", 18, false, [this](EventArguments) { switch (eventType) { + ui->initPin(variable, "mdio", 18, false, [this](EventArguments) { switch (eventType) { case onChange: ethActive = false; return true; default: return false; }}); - ui->initSelect(variable.var, "type", ETH_PHY_LAN8720, false, [this](EventArguments) { switch (eventType) { + ui->initSelect(variable, "type", ETH_PHY_LAN8720, false, [this](EventArguments) { switch (eventType) { case onUI: { JsonArray options = variable.setOptions(); options.add("LAN8720"); @@ -144,7 +144,7 @@ void SysModNetwork::setup() { return true; default: return false; }}); - ui->initSelect(variable.var, "clockMode", ETH_CLOCK_GPIO17_OUT, false, [this](EventArguments) { switch (eventType) { + ui->initSelect(variable, "clockMode", ETH_CLOCK_GPIO17_OUT, false, [this](EventArguments) { switch (eventType) { case onUI: { JsonArray options = variable.setOptions(); options.add("GPIO0_IN"); @@ -179,7 +179,7 @@ void SysModNetwork::setup() { #endif - currentVar = ui->initCheckBox(parentVar, "AP", false, false, [this](EventArguments) { switch (eventType) { + currentVar = ui->initCheckBox(parentVar, "AP", (bool3State)false, false, [this](EventArguments) { switch (eventType) { case onChange: if (variable.value().as()) initAP(); @@ -315,7 +315,7 @@ void SysModNetwork::initAP() { const char * apSSID = mdl->getValue("System", "name"); if (WiFi.softAPConfig(IPAddress(4, 3, 2, 1), IPAddress(4, 3, 2, 1), IPAddress(255, 255, 255, 0)) - && WiFi.softAP(apSSID, NULL, apChannel, false)) { //no password!!! + && WiFi.softAP(apSSID, nullptr, apChannel, false)) { //no password!!! ppf("AP success %s %s s:%d\n", apSSID, WiFi.softAPIP().toString().c_str(), WiFi.status()); //6 is disconnected #if defined(STARBASE_LOLIN_WIFI_FIX ) WiFi.setTxPower(WIFI_POWER_8_5dBm ); diff --git a/src/Sys/SysModPins.cpp b/src/Sys/SysModPins.cpp index 4ab4babd..3f1e1c4b 100644 --- a/src/Sys/SysModPins.cpp +++ b/src/Sys/SysModPins.cpp @@ -23,7 +23,7 @@ SysModPins::SysModPins() :SysModule("Pins") { void SysModPins::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 2202); + const Variable parentVar = ui->initSysMod(Variable(), name, 2202); //show table of allocated pins Variable tableVar = ui->initTable(parentVar, "pins", nullptr, true, [](EventArguments) { switch (eventType) { diff --git a/src/Sys/SysModPins.h b/src/Sys/SysModPins.h index c36fa396..3da6767c 100644 --- a/src/Sys/SysModPins.h +++ b/src/Sys/SysModPins.h @@ -39,7 +39,7 @@ class SysModPins:public SysModule { void allocatePin(uint8_t pin, const char * owner, const char * details); void deallocatePin(uint8_t pin = UINT8_MAX, const char * owner = nullptr); - bool isOwner(uint8_t pin, const char * owner) { + bool isOwner(uint8_t pin, const char * owner) const { return strncmp(pinObjects[pin].owner, owner, sizeof(PinObject::owner)) == 0; } diff --git a/src/Sys/SysModPrint.cpp b/src/Sys/SysModPrint.cpp index 16823c90..83450fa7 100644 --- a/src/Sys/SysModPrint.cpp +++ b/src/Sys/SysModPrint.cpp @@ -55,7 +55,7 @@ SysModPrint::SysModPrint() :SysModule("Print") { void SysModPrint::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 2302); + const Variable parentVar = ui->initSysMod(Variable(), name, 2302); //default to Serial ui->initSelect(parentVar, "output", 1, false, [](EventArguments) { switch (eventType) { @@ -84,12 +84,12 @@ void SysModPrint::printf(const char * format, ...) { va_start(args, format); - uint8_t output = 1; //default serial char buffer[512]; //this is a lot for the stack - move to heap? vsnprintf(buffer, sizeof(buffer), format, args); bool toSerial = false; if (mdls->isConnected) { + uint8_t output = 1; if (mdl->model) output = mdl->getValue("Print", "output"); //"Print", @@ -113,7 +113,7 @@ void SysModPrint::printf(const char * format, ...) { toSerial = true; if (toSerial) { - Serial.print(strncmp(pcTaskGetTaskName(NULL), "loopTask", 9) == 0?"":"α"); //looptask λ/ asyncTCP task α + Serial.print(strncmp(pcTaskGetTaskName(nullptr), "loopTask", 9) == 0?"":"α"); //looptask λ/ asyncTCP task α Serial.print(buffer); } diff --git a/src/Sys/SysModSystem.cpp b/src/Sys/SysModSystem.cpp index 45baea55..0916b499 100644 --- a/src/Sys/SysModSystem.cpp +++ b/src/Sys/SysModSystem.cpp @@ -39,7 +39,7 @@ SysModSystem::SysModSystem() :SysModule("System") {}; void SysModSystem::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 2000); + const Variable parentVar = ui->initSysMod(Variable(), name, 2000); parentVar.var["s"] = true; //setup ui->initText(parentVar, "name", _INIT(TOSTRING(APP)), 24, false, [this](EventArguments) { switch (eventType) { @@ -240,7 +240,10 @@ void SysModSystem::loop() { void SysModSystem::loop10s() { //heartbeat - ppf("❤️"); + if (sys->now < 60000) + ppf("❤️ %s\n", net->localIP().toString().c_str()); + else + ppf("❤️"); } //replace code by sentence as soon it occurs, so we know what will happen and what not @@ -328,22 +331,22 @@ String SysModSystem::sysTools_reset2String(int resetCode) { int SysModSystem::sysTools_get_arduino_maxStackUsage(void) { char * loop_taskname = pcTaskGetTaskName(loop_taskHandle); // ask for name of the known task (to make sure we are still looking at the right one) - if ((loop_taskHandle == NULL) || (loop_taskname == NULL) || (strncmp(loop_taskname, "loopTask", 9) != 0)) { + if ((loop_taskHandle == nullptr) || (loop_taskname == nullptr) || (strncmp(loop_taskname, "loopTask", 9) != 0)) { loop_taskHandle = xTaskGetHandle("loopTask"); // need to look for the task by name. FreeRTOS docs say this is very slow, so we store the result for next time } - if (loop_taskHandle != NULL) return uxTaskGetStackHighWaterMark(loop_taskHandle); // got it !! + if (loop_taskHandle != nullptr) return uxTaskGetStackHighWaterMark(loop_taskHandle); // got it !! else return -1; } int SysModSystem::sysTools_get_webserver_maxStackUsage(void) { char * tcp_taskname = pcTaskGetTaskName(tcp_taskHandle); // ask for name of the known task (to make sure we are still looking at the right one) - if ((tcp_taskHandle == NULL) || (tcp_taskname == NULL) || (strncmp(tcp_taskname, "async_tcp", 10) != 0)) { + if ((tcp_taskHandle == nullptr) || (tcp_taskname == nullptr) || (strncmp(tcp_taskname, "async_tcp", 10) != 0)) { tcp_taskHandle = xTaskGetHandle("async_tcp"); // need to look for the task by name. FreeRTOS docs say this is very slow, so we store the result for next time } - if (tcp_taskHandle != NULL) return uxTaskGetStackHighWaterMark(tcp_taskHandle); // got it !! + if (tcp_taskHandle != nullptr) return uxTaskGetStackHighWaterMark(tcp_taskHandle); // got it !! else return -1; } diff --git a/src/Sys/SysModSystem.h b/src/Sys/SysModSystem.h index af6bdb29..9771fbb4 100644 --- a/src/Sys/SysModSystem.h +++ b/src/Sys/SysModSystem.h @@ -74,8 +74,8 @@ class SysModSystem:public SysModule { String restartCode2InfoLong(esp_reset_reason_t reason); String restartCode2Info(esp_reset_reason_t reason); - TaskHandle_t loop_taskHandle = NULL; // to store the task handle for later calls - TaskHandle_t tcp_taskHandle = NULL; // to store the task handle for later calls + TaskHandle_t loop_taskHandle = nullptr; // to store the task handle for later calls + TaskHandle_t tcp_taskHandle = nullptr; // to store the task handle for later calls }; diff --git a/src/Sys/SysModUI.cpp b/src/Sys/SysModUI.cpp index 77a9d4d1..5046fe3e 100644 --- a/src/Sys/SysModUI.cpp +++ b/src/Sys/SysModUI.cpp @@ -20,7 +20,7 @@ SysModUI::SysModUI() :SysModule("UI") { void SysModUI::setup() { SysModule::setup(); - Variable parentVar = initSysMod(Variable(), name, 4101); + const Variable parentVar = initSysMod(Variable(), name, 4101); Variable tableVar = initTable(parentVar, "loops", nullptr, true, [](EventArguments) { switch (eventType) { case onUI: @@ -32,7 +32,7 @@ void SysModUI::setup() { initText(tableVar, "variable", nullptr, 32, true, [this](EventArguments) { switch (eventType) { case onSetValue: for (size_t rowNr = 0; rowNr < loopFunctions.size(); rowNr++) - variable.setValue(JsonString(loopFunctions[rowNr].var["id"], JsonString::Copied), rowNr); + variable.setValue(JsonString(loopFunctions[rowNr].variable.id(), JsonString::Copied), rowNr); return true; default: return false; }}); @@ -54,10 +54,10 @@ void SysModUI::setup() { void SysModUI::loop20ms() { //never more then 50 times a second! for (VarLoop &varLoop : loopFunctions) { - if (millis() - varLoop.lastMillis >= varLoop.var["interval"].as()) { + if (millis() - varLoop.lastMillis >= varLoop.variable.var["interval"].as()) { varLoop.lastMillis = millis(); - varLoop.loopFun(varLoop.var, 1, onLoop); //rowNr.. + varLoop.loopFun(varLoop.variable, 1, onLoop); //rowNr.. varLoop.counter++; // ppf("%s %u %u %d %d\n", varLoop->Variable(var).id(), varLoop->lastMillis, millis(), varLoop->interval, varLoop->counter); @@ -114,9 +114,9 @@ void SysModUI::processJson(JsonVariant json) { char pid[32]; strlcpy(pid, varInArray, sizeof(pid)); char * id = strtok(pid, "."); - if (id != NULL ) { + if (id != nullptr ) { strlcpy(pid, id, sizeof(pid)); //copy the id part - id = strtok(NULL, "."); //the rest after . + id = strtok(nullptr, "."); //the rest after . } JsonObject var = mdl->findVar(pid, id); //value is the id @@ -143,18 +143,18 @@ void SysModUI::processJson(JsonVariant json) { strlcpy(pidid, key, sizeof(pidid)); //check if we deal with multiple rows (from table type) char * rowNrC = strtok(pidid, "#"); - if (rowNrC != NULL ) { + if (rowNrC != nullptr ) { strlcpy(pidid, rowNrC, sizeof(pidid)); //copy the pidid part - rowNrC = strtok(NULL, "#"); //the rest after # + rowNrC = strtok(nullptr, "#"); //the rest after # } - uint8_t rowNr = rowNrC?atoi(rowNrC):UINT8_MAX; + uint8_t rowNr = rowNrC?strtol(rowNrC, nullptr, 10):UINT8_MAX; char pid[64]; strlcpy(pid, pidid, sizeof(pid)); char * id = strtok(pid, "."); - if (id != NULL ) { + if (id != nullptr ) { strlcpy(pid, id, sizeof(pid)); //copy the id part - id = strtok(NULL, "."); //the rest after . + id = strtok(nullptr, "."); //the rest after . } if (pid && id) { diff --git a/src/Sys/SysModUI.h b/src/Sys/SysModUI.h index c1d04ca7..dff044dd 100644 --- a/src/Sys/SysModUI.h +++ b/src/Sys/SysModUI.h @@ -15,7 +15,7 @@ #include "SysModModel.h" struct VarLoop { - JsonObject var; + Variable variable; VarEvent loopFun; unsigned long lastMillis = 0; unsigned long counter = 0; @@ -41,12 +41,12 @@ class SysModUI: public SysModule { return variable; } Variable initSysMod(Variable parent, const char * id, int order = 0) { - Variable variable = initVarAndValue(parent, id, "sysmod", (const char *)nullptr); + const Variable variable = initVarAndValue(parent, id, "sysmod", (const char *)nullptr); if (order) variable.defaultOrder(order + 1000); return variable; } Variable initUserMod(Variable parent, const char * id, int order = 0) { - Variable variable = initVarAndValue(parent, id, "usermod", (const char *)nullptr); + const Variable variable = initVarAndValue(parent, id, "usermod", (const char *)nullptr); if (order) variable.defaultOrder(order + 1000); return variable; } diff --git a/src/Sys/SysModWeb.cpp b/src/Sys/SysModWeb.cpp index d1d5294d..72850a25 100644 --- a/src/Sys/SysModWeb.cpp +++ b/src/Sys/SysModWeb.cpp @@ -45,7 +45,7 @@ SysModWeb::SysModWeb() :SysModule("Web") { void SysModWeb::setup() { SysModule::setup(); - Variable parentVar = ui->initSysMod(Variable(), name, 3101); + const Variable parentVar = ui->initSysMod(Variable(), name, 3101); Variable tableVar = ui->initTable(parentVar, "clients", nullptr, true, [](EventArguments) { switch (eventType) { case onLoop1s: @@ -657,9 +657,9 @@ bool SysModWeb::captivePortal(WebRequest *request) } JsonDocument * SysModWeb::getResponseDoc() { - // ppf("response wsevent core %d %s\n", xPortGetCoreID(), pcTaskGetTaskName(NULL)); + // ppf("response wsevent core %d %s\n", xPortGetCoreID(), pcTaskGetTaskName(nullptr)); - return strncmp(pcTaskGetTaskName(NULL), "loopTask", 9) == 0?responseDocLoopTask:responseDocAsyncTCP; + return strncmp(pcTaskGetTaskName(nullptr), "loopTask", 9) == 0?responseDocLoopTask:responseDocAsyncTCP; } JsonObject SysModWeb::getResponseObject() { @@ -669,7 +669,7 @@ JsonObject SysModWeb::getResponseObject() { void SysModWeb::sendResponseObject(WebClient * client) { JsonObject responseObject = getResponseObject(); if (responseObject.size()) { - // if (strncmp(pcTaskGetTaskName(NULL), "loopTask", 9) != 0) { + // if (strncmp(pcTaskGetTaskName(nullptr), "loopTask", 9) != 0) { // ppf("send "); // char sep[3] = ""; // for (JsonPair pair: responseObject) { diff --git a/src/Sys/SysModWeb.h b/src/Sys/SysModWeb.h index ddc9a98b..58911c13 100644 --- a/src/Sys/SysModWeb.h +++ b/src/Sys/SysModWeb.h @@ -107,7 +107,7 @@ class SysModWeb:public SysModule { void jsonHandler(WebRequest *request, JsonVariant json); //Is this an IP? - bool isIp(String str) { + bool isIp(const String& str) { for (size_t i = 0; i < str.length(); i++) { int c = str.charAt(i); if (c != '.' && (c < '0' || c > '9')) { @@ -120,7 +120,7 @@ class SysModWeb:public SysModule { bool captivePortal(WebRequest *request); template - void addResponse(JsonObject var, const char * key, Type value, uint8_t rowNr = UINT8_MAX) { + void addResponse(const JsonObject var, const char * key, Type value, const uint8_t rowNr = UINT8_MAX) { JsonObject responseObject = getResponseObject(); // if (responseObject[id].isNull()) responseObject[id].to();; char pidid[64]; @@ -134,7 +134,7 @@ class SysModWeb:public SysModule { } } - void addResponse(JsonObject var, const char * key, const char * format = nullptr, ...) { + void addResponse(const JsonObject var, const char * key, const char * format = nullptr, ...) { va_list args; va_start(args, format); diff --git a/src/Sys/SysStarJson.cpp b/src/Sys/SysStarJson.cpp index 2e1918a5..53c88d5d 100644 --- a/src/Sys/SysStarJson.cpp +++ b/src/Sys/SysStarJson.cpp @@ -61,14 +61,14 @@ } //look for array of integers - void StarJson::lookFor(const char * id, std::function)> fun) { + void StarJson::lookFor(const char * id, const std::function)>& fun) { funList.push_back(fun); addToVars(id, "fun", funList.size()-1); } //reads from file until all vars have been found (then stops reading) //returns false if not all vars to look for are found - bool StarJson::deserialize(bool lazy) { + bool StarJson::deserialize(const bool lazy) { f.read(&character, sizeof(byte)); while (f.available() && (!foundAll || !lazy)) next(); @@ -81,7 +81,7 @@ } //called by lookedFor, store the var details in varDetails - void StarJson::addToVars(const char * id, const char * type, size_t index) { + void StarJson::addToVars(const char * id, const char * type, const size_t index) { VarDetails vd; vd.id = id; vd.type = type; @@ -122,7 +122,7 @@ check(lastVarId); //check the parent array, if exists - if (varStack.size()-2 >=0) { + if (varStack.size() - 2 >= 0) { // ppf(" Parent check %s\n", varStack[varStack.size()-2].c_str()); strlcpy(beforeLastVarId, varStack[varStack.size()-2].c_str(), sizeof(beforeLastVarId)); check(beforeLastVarId); @@ -164,7 +164,7 @@ //number value found // ppf("Number var %s: [%s]\n", lastVarId, value); if (collectNumbers) - uint16CollectList.push_back(atoi(value)); + uint16CollectList.push_back(strtol(value, nullptr, 10)); check(lastVarId, value); @@ -202,9 +202,9 @@ // ppf("check %s %s %s\n", vd->id, varId, value); if (strncmp(vd->id, varId, 32)==0) { // ppf("StarJson found %s:%s %d %s %d %d\n", varId, vd->type, vd->index, value?value:"", uint16CollectList.size(), funList.size()); - if (strncmp(vd->type, "uint8", 7) ==0 && value) *uint8List[vd->index] = atoi(value); - // if (strncmp(vd->type, "uint16", 7) ==0 && value) *uint16List[vd->index] = atoi(value); - // if (strncmp(vd->type, "int", 7) ==0 && value) *intList[vd->index] = atoi(value); + if (strncmp(vd->type, "uint8", 7) ==0 && value) *uint8List[vd->index] = strtol(value, nullptr, 10); + // if (strncmp(vd->type, "uint16", 7) ==0 && value) *uint16List[vd->index] = strtol(value, nullptr, 10); + // if (strncmp(vd->type, "int", 7) ==0 && value) *intList[vd->index] = strtol(value, nullptr, 10); if (strncmp(vd->type, "char", 5) ==0 && value) strlcpy(charList[vd->index], value, 32); //assuming size 32 here if (strncmp(vd->type, "fun", 4) ==0) funList[vd->index](uint16CollectList); //call for every found item (no value check) foundCounter++; diff --git a/src/Sys/SysStarJson.h b/src/Sys/SysStarJson.h index 1908a52b..d252d390 100644 --- a/src/Sys/SysStarJson.h +++ b/src/Sys/SysStarJson.h @@ -22,7 +22,7 @@ class StarJson { public: - StarJson(const char * path, const char * mode = "r"); + explicit StarJson(const char * path, const char * mode = "r"); ~StarJson(); @@ -42,7 +42,7 @@ class StarJson { // void lookFor(const char * id, uint16_t * value); // void lookFor(const char * id, int * value); void lookFor(const char * id, char * value); - void lookFor(const char * id, std::function)> fun); + void lookFor(const char * id, const std::function)>& fun); //reads from file until all vars have been found (then stops reading) //returns false if not all vars to look for are found diff --git a/src/SysModule.h b/src/SysModule.h index dbdf9fd9..505ca00d 100644 --- a/src/SysModule.h +++ b/src/SysModule.h @@ -45,8 +45,9 @@ class SysModule { unsigned long twentyMsMillis = millis() - random(1000); //random so not all 1s are fired at once unsigned long oneSecondMillis = millis() - random(1000); //random so not all 1s are fired at once unsigned long tenSecondMillis = millis() - random(10000); //random within a second + // void (SysModule::*loopCached)() = &SysModule::loop; //use virtual cached function for speed??? tested, no difference ... - SysModule(const char * name) { + explicit SysModule(const char * name) { this->name = name; success = true; isEnabled = true; @@ -64,9 +65,4 @@ class SysModule { virtual void connectedChanged() {onOffChanged();} virtual void enabledChanged() {onOffChanged();} virtual void onOffChanged() {} - - virtual void testManager() {} - virtual void performanceManager() {} - virtual void dataSizeManager() {} - virtual void codeSizeManager() {} }; \ No newline at end of file diff --git a/src/SysModules.cpp b/src/SysModules.cpp index 29e798bc..67a28cc6 100644 --- a/src/SysModules.cpp +++ b/src/SysModules.cpp @@ -15,8 +15,7 @@ #include "Sys/SysModWeb.h" #include "Sys/SysModModel.h" -SysModules::SysModules() { -}; +SysModules::SysModules() = default; void SysModules::setup() { for (SysModule *module:modules) { @@ -33,7 +32,7 @@ void SysModules::setup() { } //do its own setup: will be shown as last module - Variable parentVar = ui->initSysMod(Variable(), "Modules", 4203); + const Variable parentVar = ui->initSysMod(Variable(), "Modules", 4203); Variable tableVar = ui->initTable(parentVar, "Modules", nullptr, true, [](EventArguments) { switch (eventType) { case onUI: @@ -94,7 +93,8 @@ void SysModules::loop() { // } for (SysModule *module:modules) { if (module->isEnabled && module->success) { - module->loop(); //use virtual cached function for speed??? + module->loop(); + // (module->*module->loopCached)(); //use virtual cached function for speed??? tested, no difference ... if (millis() - module->twentyMsMillis >= 20) { module->twentyMsMillis = millis(); module->loop20ms(); //use virtual cached function for speed??? @@ -107,10 +107,6 @@ void SysModules::loop() { module->tenSecondMillis = millis(); module->loop10s(); } - // module->testManager(); - // module->performanceManager(); - // module->dataSizeManager(); - // module->codeSizeManager(); } } if (newConnection) { @@ -118,7 +114,6 @@ void SysModules::loop() { isConnected = true; connectedChanged(); } - } void SysModules::reboot() { diff --git a/src/User/UserModE131.h b/src/User/UserModE131.h index 3d131cd4..4aca97c5 100644 --- a/src/User/UserModE131.h +++ b/src/User/UserModE131.h @@ -27,7 +27,7 @@ class UserModE131:public SysModule { void setup() override { SysModule::setup(); - Variable parentVar = ui->initUserMod(Variable(), name, 6201); + const Variable parentVar = ui->initUserMod(Variable(), name, 6201); ui->initNumber(parentVar, "universe", &universe, 0, 7); diff --git a/src/User/UserModHA.h b/src/User/UserModHA.h index af928d46..da132e97 100644 --- a/src/User/UserModHA.h +++ b/src/User/UserModHA.h @@ -24,7 +24,7 @@ class UserModHA:public SysModule { void setup() override { SysModule::setup(); - Variable parentVar = ui->initUserMod(Variable(), name, 6300); + const Variable parentVar = ui->initUserMod(Variable(), name, 6300); ui->initText(parentVar, "mqttAddr"); ui->initText(parentVar, "mqttUser"); diff --git a/src/User/UserModLive.cpp b/src/User/UserModLive.cpp index 982724e6..6a610c70 100644 --- a/src/User/UserModLive.cpp +++ b/src/User/UserModLive.cpp @@ -115,7 +115,7 @@ static float _time(float j) { //note: -mtext-section-literals needed in pio.ini, first only for s2, now for all due to something in setup... - Variable parentVar = ui->initUserMod(Variable(), name, 6310); + const Variable parentVar = ui->initUserMod(Variable(), name, 6310); ui->initSelect(parentVar, "script", UINT8_MAX, false, [this](EventArguments) { switch (eventType) { case onUI: { @@ -368,11 +368,7 @@ static float _time(float j) { uint8_t UserModLive::compile(const char * fileName, const char * post) { ppf("live compile n:%s o:%s \n", fileName, this->fileName); - //if(this->fileName!=NULL) - killAndDelete(); //doesn't this kill running scripts, e.g. when changing a Live Fixture, a running Live Effect will be killed ! - killAndDelete(fileName); //kill any old script - - //this->fileName=(char *)_fileName; + File f = files->open(fileName, "r"); if (!f) { diff --git a/src/User/UserModLive.h b/src/User/UserModLive.h index 3af2582d..3f52a724 100644 --- a/src/User/UserModLive.h +++ b/src/User/UserModLive.h @@ -17,7 +17,7 @@ class UserModLive: public SysModule { public: char fileName[32] = ""; //running sc file - std::string scScript = ""; //externals etc generated (would prefer String for esp32...) + std::string scScript; //externals etc generated (would prefer String for esp32...) UserModLive() :SysModule("LiveScripts") { isEnabled = false; //need to enable after fresh setup diff --git a/src/User/UserModMDNS.h b/src/User/UserModMDNS.h index fb6da497..73828579 100644 --- a/src/User/UserModMDNS.h +++ b/src/User/UserModMDNS.h @@ -31,7 +31,7 @@ class UserModMDNS:public SysModule { } - void onOffChanged() { + void onOffChanged() override { if (mdls->isConnected && isEnabled) { resetMDNS(); diff --git a/src/User/UserModMPU6050.h b/src/User/UserModMPU6050.h index 8afdcaf0..c2d6894e 100644 --- a/src/User/UserModMPU6050.h +++ b/src/User/UserModMPU6050.h @@ -34,7 +34,7 @@ class UserModMPU6050: public SysModule { void setup() override { SysModule::setup(); - Variable parentVar = ui->initUserMod(Variable(), name, 6305); + const Variable parentVar = ui->initUserMod(Variable(), name, 6305); ui->initCheckBox(parentVar, "ready", &motionTrackingReady, true, [](EventArguments) { switch (eventType) { case onUI: diff --git a/src/User/UserModMidi.h b/src/User/UserModMidi.h index c1496b30..1711be24 100644 --- a/src/User/UserModMidi.h +++ b/src/User/UserModMidi.h @@ -11,6 +11,8 @@ // #include +#include "SysModules.h" + class UserModMidi:public SysModule { public: @@ -26,7 +28,7 @@ class UserModMidi:public SysModule { } - void onOffChanged() { + void onOffChanged() override{ if (mdls->isConnected && isEnabled) {