From 6e77cf8cc96cf7828749c15880f61c39d2d3355e Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Wed, 10 Apr 2024 17:47:19 +1000 Subject: [PATCH 1/5] prepared for template strings --- source/bnf/syntax.bnf | 11 +++-- source/bnf/syntax.d.ts | 47 +++++++++++++------ source/bnf/syntax.js | 15 +++--- .../compiler/codegen/expression/constant.ts | 33 ++++++++----- source/compiler/file.ts | 4 +- 5 files changed, 69 insertions(+), 41 deletions(-) diff --git a/source/bnf/syntax.bnf b/source/bnf/syntax.bnf index 7a8b1e7..d9aab5e 100644 --- a/source/bnf/syntax.bnf +++ b/source/bnf/syntax.bnf @@ -32,10 +32,11 @@ constant ::= boolean | string | float | integer ; -string ::= string_ascii | string_utf8 ; - string_ascii ::= %"\'" ( str_escape | !( "\'" ) )* %"\'" ; - string_utf8 ::= %"\"" ( str_escape | !( "\"" ) )* %"\"" ; - str_escape ::= %"\\" !"" ; +string ::= string_plain | string_template ; + string_plain ::= %"\"" ( str_escape | !"\"" )* %"\"" ; + str_escape ::= %"\\" !"" ; + string_template ::= %"\`" ( str_escape | !"`" )* %"`" ; + string_tag ::= %"${" expr %"}" ; boolean ::= "true" | "false" ; @@ -127,7 +128,7 @@ statement ::= expr %terminate ; # External #============================= external ::= %( "external" w+ ) ( ext_import | ext_export ) ; - ext_import ::= %( "import" w* "{" w* ) ext_imports* %( w* "}" w* "from" w*) string %(w* ";" w*) ; + ext_import ::= %( "import" w* "{" w* ) ext_imports* %( w* "}" w* "from" w*) string_plain %(w* ";" w*) ; ext_imports ::= function | ext_import_var ; ext_import_var ::= %( "let" w* ) name %( w* ":" w* ) access %(w* ";" w*); ext_export ::= "export" ; \ No newline at end of file diff --git a/source/bnf/syntax.d.ts b/source/bnf/syntax.d.ts index ffdc097..2b71bbc 100644 --- a/source/bnf/syntax.d.ts +++ b/source/bnf/syntax.d.ts @@ -235,7 +235,7 @@ export type Term_String = { count: number, ref: _Shared.ReferenceRange, value: [ - (Term_String_ascii | Term_String_utf8) + (Term_String_plain | Term_String_template) ] } export declare function Parse_String (i: string, refMapping?: boolean): _Shared.ParseError | { @@ -245,8 +245,8 @@ export declare function Parse_String (i: string, refMapping?: boolean): _Shared. isPartial: boolean } -export type Term_String_ascii = { - type: 'string_ascii', +export type Term_String_plain = { + type: 'string_plain', start: number, end: number, count: number, @@ -255,15 +255,32 @@ export type Term_String_ascii = { { type: '(...)*', value: Array<(Term_Str_escape | _Literal)>, start: number, end: number, count: number, ref: _Shared.ReferenceRange } ] } -export declare function Parse_String_ascii (i: string, refMapping?: boolean): _Shared.ParseError | { - root: _Shared.SyntaxNode & Term_String_ascii, +export declare function Parse_String_plain (i: string, refMapping?: boolean): _Shared.ParseError | { + root: _Shared.SyntaxNode & Term_String_plain, reachBytes: number, reach: null | _Shared.Reference, isPartial: boolean } -export type Term_String_utf8 = { - type: 'string_utf8', +export type Term_Str_escape = { + type: 'str_escape', + start: number, + end: number, + count: number, + ref: _Shared.ReferenceRange, + value: [ + _Literal + ] +} +export declare function Parse_Str_escape (i: string, refMapping?: boolean): _Shared.ParseError | { + root: _Shared.SyntaxNode & Term_Str_escape, + reachBytes: number, + reach: null | _Shared.Reference, + isPartial: boolean +} + +export type Term_String_template = { + type: 'string_template', start: number, end: number, count: number, @@ -272,25 +289,25 @@ export type Term_String_utf8 = { { type: '(...)*', value: Array<(Term_Str_escape | _Literal)>, start: number, end: number, count: number, ref: _Shared.ReferenceRange } ] } -export declare function Parse_String_utf8 (i: string, refMapping?: boolean): _Shared.ParseError | { - root: _Shared.SyntaxNode & Term_String_utf8, +export declare function Parse_String_template (i: string, refMapping?: boolean): _Shared.ParseError | { + root: _Shared.SyntaxNode & Term_String_template, reachBytes: number, reach: null | _Shared.Reference, isPartial: boolean } -export type Term_Str_escape = { - type: 'str_escape', +export type Term_String_tag = { + type: 'string_tag', start: number, end: number, count: number, ref: _Shared.ReferenceRange, value: [ - _Literal + Term_Expr ] } -export declare function Parse_Str_escape (i: string, refMapping?: boolean): _Shared.ParseError | { - root: _Shared.SyntaxNode & Term_Str_escape, +export declare function Parse_String_tag (i: string, refMapping?: boolean): _Shared.ParseError | { + root: _Shared.SyntaxNode & Term_String_tag, reachBytes: number, reach: null | _Shared.Reference, isPartial: boolean @@ -1271,7 +1288,7 @@ export type Term_Ext_import = { ref: _Shared.ReferenceRange, value: [ { type: '(...)*', value: Array, start: number, end: number, count: number, ref: _Shared.ReferenceRange }, - Term_String + Term_String_plain ] } export declare function Parse_Ext_import (i: string, refMapping?: boolean): _Shared.ParseError | { diff --git a/source/bnf/syntax.js b/source/bnf/syntax.js index 8c8d9ec..3ba67cf 100644 --- a/source/bnf/syntax.js +++ b/source/bnf/syntax.js @@ -1,5 +1,5 @@ import * as _Shared from "./shared.js"; -let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AGABfwF/YAN/f38AYAN/f38Bf2ACf38BfwIQAQJqcwlwcmludF9pMzIAAQNLSgACAwQBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQQBAQEKBiAGfwBB7gULfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwfPBkkGbWVtb3J5AgAFaW5wdXQDAAVyZWFjaAMFC2lucHV0TGVuZ3RoAwIFX2luaXQAAQdwcm9ncmFtAAcIc3RtdF90b3AACAF3AAkCbmwACgVkaWdpdAALCGRpZ2l0X256AAwGbGV0dGVyAA0JdGVybWluYXRlAA4HY29tbWVudAAPDmNvbW1lbnRfc2luZ2xlABANY29tbWVudF9tdWx0aQARCGNvbnN0YW50ABIGc3RyaW5nABMMc3RyaW5nX2FzY2lpABQLc3RyaW5nX3V0ZjgAFQpzdHJfZXNjYXBlABYHYm9vbGVhbgAXBHZvaWQAGAdpbnRlZ2VyABkJaW50ZWdlcl91ABoEemVybwAbBWZsb2F0ABwEbmFtZQAdBmFjY2VzcwAeCGFjY2Vzc29yAB8NYWNjZXNzX3N0YXRpYwAgDmFjY2Vzc19keW5hbWljACELYWNjZXNzX2NvbXAAIgdkZWNsYXJlACMGYXNzaWduACQJc3RydWN0dXJlACULc3RydWN0X3R5cGUAJgtzdHJ1Y3Rfc3RtdAAnC3N0cnVjdF9hdHRyACgNc3RydWN0X3NwcmVhZAApCWNvbnRhaW5lcgAqDmNvbnRhaW5lcl9pdGVtACsNY29udGFpbmVyX21hcAAsD2NvbnRhaW5lcl92YWx1ZQAtCGZ1bmN0aW9uAC4JZnVuY19oZWFkAC8JZnVuY19hcmdzADAIZnVuY19hcmcAMQVibG9jawAyCmJsb2NrX3N0bXQAMwlmdW5jX2NhbGwANA5mdW5jX2NhbGxfYm9keQA1BnJldHVybgA2BXJhaXNlADcEZXhwcgA4C2V4cHJfcHJlZml4ADkKZXhwcl9pbmZpeAA6DGV4cHJfcG9zdGZpeAA7CmV4cHJfcGFyYW0APAlleHByX2NhbGwAPQhleHByX2dldAA+CWV4cHJfbG9hbgA/CGV4cHJfYXJnAEAIZXhwcl92YWwAQQ1leHByX2JyYWNrZXRzAEIIYXJnX2xpc3QAQwJpZgBECXN0YXRlbWVudABFCGV4dGVybmFsAEYKZXh0X2ltcG9ydABHC2V4dF9pbXBvcnRzAEgOZXh0X2ltcG9ydF92YXIASQpleHRfZXhwb3J0AEoK0J0CShoAQQAkBEEAJAUjAkHuBWokASMBEAIkAyMDCwoAIABBA2pBfHELIwEBfwNAIAAgA2ogASADai0AADoAACADQQFqIgMgAkgNAAsLQQEBfyAAQe4FaiEDQQAhAANAAkAgACADai0AACAAIAFqLQAARw0AIABBAWoiACACTg0AIwEgACADakoNAQsLIAALDgAgACMFTgRAIAAkBQsLWAEDfyABIQRBASECA0AgACgCAAR/IAIgACgCEGohAiAAQRRqBSABIABBFGogACgCECIDEAMgASADaiEBIAAgA0EUamoQAgshACACQQFrIgINAAsgASAEawuYAwEHfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkAwJAQQAhAEEADQAjAyIDIwQ2AgggA0EUaiQDA0AjAyIBIwQ2AgggAUEUaiQDAkAQCCIAQQFGDQAjA0EAIQUjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCAFQQFqIQUMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgBTYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyAAQQFGRQRAIARBAWohBAwBCwsgA0ESNgIAIANBBjYCBCADIwQ2AgwgAyAENgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEeNgIAIAJBBzYCBCACIwQ2AgwgAkEBNgIQCyAAC4ABAQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDAkAQLiIBRQ0AECUiAUUNABBGIgFFDQALAkAgAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABBJTYCACAAQQg2AgQgACMENgIMIABBATYCEAsgAQvbAgEEfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQS1BARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakEtQQEQAyABQRVqEAIkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQS5BARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakEuQQEQAyABQRVqEAIkAwsgAEUNABAKIgBFDQAQDyIARQ0ACwJAIABBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQS82AgAgAkEBNgIEIAIjBDYCDCACQQE2AhALIAALxwIBBH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEEwQQIQBCEDIAMjBGokBCMEEAUCQCADQQJHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIAFBFGpBMEECEAMgAUEWahACJAMLAkAgAEUNAEEAIQAjAyIBIwQ2AggjBEEyQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBMkEBEAMgAUEVahACJAMLIABFDQALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBMzYCACACQQI2AgQgAiMENgIMIAJBATYCEAsgAAvzAQEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiASMENgIIIAFBFGokAyMDIgAjBDYCCAJAIwQjAk4NACMEQe4Fai0AACIEQTBJIARBOUtyDQAgAkEBaiECIwRBAWokBAsjBBAFAkAgAkEATARAQQEhAyAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgAjYCECAAQRRqIAAoAghB7gVqIAIQAyAAIAJBFGpqEAIkAwsCQCADDQALIAMEQEEBIQMgASgCCCQEIAEkAwUgAUE2NgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyADC/MBAQV/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIBIwQ2AgggAUEUaiQDIwMiACMENgIIAkAjBCMCTg0AIwRB7gVqLQAAIgRBMUkgBEE5S3INACACQQFqIQIjBEEBaiQECyMEEAUCQCACQQBMBEBBASEDIAAoAggkBCAAJAMMAQsgAEEANgIAIABBBzYCBCAAIwQ2AgwgACACNgIQIABBFGogACgCCEHuBWogAhADIAAgAkEUamoQAiQDCwJAIAMNAAsgAwRAQQEhAyABKAIIJAQgASQDBSABQTw2AgAgAUEINgIEIAEjBDYCDCABQQE2AhALIAMLngMBBX8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggCQCMEIwJODQAjBEHuBWotAAAiBEHhAEkgBEH6AEtyDQAgAUEBaiEBIwRBAWokBAsjBBAFAkAgAUEATARAQQEhAiAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghB7gVqIAEQAyAAIAFBFGpqEAIkAwsCQCACRQ0AQQAhAkEAIQEjAyIAIwQ2AggCQCMEIwJODQAjBEHuBWotAAAiBEHBAEkgBEHaAEtyDQAgAUEBaiEBIwRBAWokBAsjBBAFAkAgAUEATARAQQEhAiAAKAIIJAQgACQDDAELIABBADYCACAAQQc2AgQgACMENgIMIAAgATYCECAAQRRqIAAoAghB7gVqIAEQAyAAIAFBFGpqEAIkAwsgAkUNAAsCQCACDQALIAIEQEEBIQIgAygCCCQEIAMkAwUgA0HGADYCACADQQY2AgQgAyMENgIMIANBATYCEAsgAgupAwEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEAJAQQAiAA0AIwMiASMENgIIIwRBzABBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHMAEEBEAMgAUEVahACJAMLIAANAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIgANAAsgAARAQQEhACADKAIIJAQgAyQDBSADQQc2AgAgA0EFNgIEIAMjBDYCDCADQQM2AhALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBzQA2AgAgAkEJNgIEIAIjBDYCDCACQQE2AhALIAALegECfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiACMENgIIIABBFGokAwJAEBAiAUUNABARIgFFDQALAkAgAUEBRg0ACyABQQFGBEBBASEBIAAoAggkBCAAJAMFIABB1gA2AgAgAEEHNgIEIAAjBDYCDCAAQQE2AhALIAELigQBBX8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggjBEHdAEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQd0AQQIQAyAAQRZqEAIkAwsCQCABQQFGDQBBACECIwMiACMENgIIIAAjBTYCDCAAQRRqJAMDQAJAIwQjAk4NACMDIgQjBDYCCCAEQRRqJAMCQBAKIgFBAUYNAAsgAUEBRgRAQQEhASAEKAIIJAQgBCQDBSAEQQc2AgAgBEEFNgIEIAQjBDYCDCAEQQE2AhALIAFFDQAgAkEBaiECIwRBAWokBAwBCwsgACgCDCQFIAAoAgggAmoQBSAAKAIIIAJqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACACNgIQIABBFGogACgCCEHuBWogAhADIAAgAkEUamoQAiQDQQAhAUEADQAjAyIAIwQ2AgggAEEUaiQDA0AQCkEBRwRAIAFBAWoiAUEBRw0BCwsgAEEMNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAUEADQALIAFBAUYEQEEBIQEgAygCCCQEIAMkAwUgA0HfADYCACADQQ42AgQgAyMENgIMIANBAzYCEAsgAQvmBgEJfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIgAjBDYCCCMEQe0AQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpB7QBBAhADIABBFmoQAiQDCwJAIAENACMDIgUjBDYCCCAFQRRqJAMDQEEAIQEjAyIAIwQ2AggjBEHvAEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQe8AQQIQAyAAQRZqEAIkAwsCQCABRQ0AAn9BACECIwMiACMENgIIIAAjBTYCDCAAQRRqJAMDQAJAIwQjAk4NAEEAIQEjAyIEIwQ2AgggBEEUaiQDIwMiBiMENgIIIwRB8QBBAhAEIQggCCMEaiQEIwQQBQJAIAhBAkcEQEEBIQEgBigCCCQEIAYkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgBkEUakHxAEECEAMgBkEWahACJAMLAkAgAQ0ACyABBEBBASEBIAQoAggkBCAEJAMFIARBBzYCACAEQQU2AgQgBCMENgIMIARBATYCEAsgAUUNACACQQFqIQIjBEEBaiQEDAELCyAAKAIMJAUgACgCCCACahAFIAJBAEwEQCAAKAIIJAQgACQDQQEMAQsgACgCCCACaiQEIABBADYCACAAQQc2AgQgACMENgIMIAAgAjYCECAAQRRqIAAoAghB7gVqIAIQAyAAIAJBFGpqEAIkA0EACyIBRQ0ACyABRQRAIAdBAWohBwwBCwsgBUESNgIAIAVBBjYCBCAFIwQ2AgwgBSAHNgIQQQAiAQ0AIwMiACMENgIIIwRB8QBBAhAEIQIgAiMEaiQEIwQQBQJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakHxAEECEAMgAEEWahACJAMLIAENAAsgAQRAQQEhASADKAIIJAQgAyQDBSADQfMANgIAIANBDTYCBCADIwQ2AgwgA0EDNgIQCyABC4gBAQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDAkAQFyIBRQ0AEBMiAUUNABAcIgFFDQAQGSIBRQ0ACwJAIAFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQYABNgIAIABBCDYCBCAAIwQ2AgwgAEEBNgIQCyABC3oBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBAUIgFFDQAQFSIBRQ0ACwJAIAFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQYgBNgIAIABBBjYCBCAAIwQ2AgwgAEEBNgIQCyABC48GAQl/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIEIwQ2AgggBEEUaiQDIwMjAyIAIwQ2AggjBEGOAUEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQY4BQQEQAyAAQRVqEAIkAwskAwJAIAFBAUYNACMDIgUjBDYCCCAFQRRqJAMDQAJAEBYiAUUNAAJ/QQAhAiMDIgAjBDYCCCAAIwU2AgwgAEEUaiQDAkAjBCMCTg0AQQAhASMDIgMjBDYCCCADQRRqJAMjAyIGIwQ2AggjBEGOAUEBEAQhCCAIIwRqJAQjBBAFAkAgCEEBRwRAQQEhASAGKAIIJAQgBiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAGQRRqQY4BQQEQAyAGQRVqEAIkAwsCQCABQQFGDQALIAFBAUYEQEEBIQEgAygCCCQEIAMkAwUgA0EHNgIAIANBBTYCBCADIwQ2AgwgA0EBNgIQCyABRQ0AIAJBAWohAiMEQQFqJAQLIAAoAgwkBSAAKAIIIAJqEAUgAkEATARAIAAoAggkBCAAJANBAQwBCyAAKAIIIAJqJAQgAEEANgIAIABBBzYCBCAAIwQ2AgwgACACNgIQIABBFGogACgCCEHuBWogAhADIAAgAkEUamoQAiQDQQALIgFFDQALIAFBAUZFBEAgB0EBaiEHDAELCyAFQRI2AgAgBUEGNgIEIAUjBDYCDCAFIAc2AhBBACEBQQANACMDIwMiACMENgIIIwRBjgFBARAEIQIgAiMEaiQEIwQQBQJAIAJBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGOAUEBEAMgAEEVahACJAMLJAMgAUEBRg0ACyABQQFGBEBBASEBIAQoAggkBCAEJAMFIARBjwE2AgAgBEEMNgIEIAQjBDYCDCAEQQE2AhALIAELjwYBCX8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgQjBDYCCCAEQRRqJAMjAyMDIgAjBDYCCCMEQZsBQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBmwFBARADIABBFWoQAiQDCyQDAkAgAUEBRg0AIwMiBSMENgIIIAVBFGokAwNAAkAQFiIBRQ0AAn9BACECIwMiACMENgIIIAAjBTYCDCAAQRRqJAMCQCMEIwJODQBBACEBIwMiAyMENgIIIANBFGokAyMDIgYjBDYCCCMEQZsBQQEQBCEIIAgjBGokBCMEEAUCQCAIQQFHBEBBASEBIAYoAggkBCAGJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAZBFGpBmwFBARADIAZBFWoQAiQDCwJAIAFBAUYNAAsgAUEBRgRAQQEhASADKAIIJAQgAyQDBSADQQc2AgAgA0EFNgIEIAMjBDYCDCADQQE2AhALIAFFDQAgAkEBaiECIwRBAWokBAsgACgCDCQFIAAoAgggAmoQBSACQQBMBEAgACgCCCQEIAAkA0EBDAELIAAoAgggAmokBCAAQQA2AgAgAEEHNgIEIAAjBDYCDCAAIAI2AhAgAEEUaiAAKAIIQe4FaiACEAMgACACQRRqahACJANBAAsiAUUNAAsgAUEBRkUEQCAHQQFqIQcMAQsLIAVBEjYCACAFQQY2AgQgBSMENgIMIAUgBzYCEEEAIQFBAA0AIwMjAyIAIwQ2AggjBEGbAUEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQZsBQQEQAyAAQRVqEAIkAwskAyABQQFGDQALIAFBAUYEQEEBIQEgBCgCCCQEIAQkAwUgBEGcATYCACAEQQs2AgQgBCMENgIMIARBATYCEAsgAQv8AgEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIwMiACMENgIIIwRBpwFBARAEIQEgASMEaiQEIwQQBQJAIAFBAUcEQEEBIQMgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakGnAUEBEAMgAEEVahACJAMLJAMCQCADDQACfyMDIgAjBDYCCCAAIwU2AgwgAEEUaiQDAn9BACIBIwQjAk4NABojBEEBaiQEIAFBAWoLIQEgACgCDCQFIAAoAgggAWoQBSABQQBMBEAgACgCCCQEIAAkA0EBDAELIAAoAgggAWokBCAAQQA2AgAgAEEHNgIEIAAjBDYCDCAAIAE2AhAgAEEUaiAAKAIIQe4FaiABEAMgACABQRRqahACJANBAAsiAw0ACyADBEBBASEDIAIoAggkBCACJAMFIAJBqAE2AgAgAkEKNgIEIAIjBDYCDCACQQE2AhALIAMLzAIBBH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGyAUEEEAQhAyADIwRqJAQjBBAFAkAgA0EERwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBBDYCECABQRRqQbIBQQQQAyABQRhqEAIkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQbYBQQUQBCEDIAMjBGokBCMEEAUCQCADQQVHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EFNgIQIAFBFGpBtgFBBRADIAFBGWoQAiQDCyAARQ0ACwJAIAANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQbsBNgIAIAJBBzYCBCACIwQ2AgwgAkEBNgIQCyAAC88BAQR/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDIwMiAiMENgIIIwRBwgFBBBAEIQMgAyMEaiQEIwQQBQJAIANBBEcEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQQ2AhAgAkEUakHCAUEEEAMgAkEYahACJAMLAkAgAQ0ACyABBEBBASEBIAAoAggkBCAAJAMFIABBwgE2AgAgAEEENgIEIAAjBDYCDCAAQQE2AhALIAELpwEBA38jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgEjBDYCCCABQRRqJAMjAyEAEBoiAkEBRgRAIAAkAwUgACAAIABBFGoQBjYCECAAQQA2AgAgAEEHNgIEIAAgACgCEEEUamoQAiQDCwJAIAJBAUYNAAsgAkEBRgRAQQEhAiABKAIIJAQgASQDBSABQcYBNgIAIAFBBzYCBCABIwQ2AgwgAUEBNgIQCyACC5ECAQR/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIBIwQ2AgggAUEUaiQDIwMiAiMENgIIIAJBFGokAwJAEAwiAEEBRg0AIwMiACMENgIIIABBFGokAwNAEAtBAUZFBEAgA0EBaiEDDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALAkAgAEUNABAbIgBFDQALAkAgAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBzQE2AgAgAUEJNgIEIAEjBDYCDCABQQE2AhALIAALzQEBBH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMjAyICIwQ2AggjBEE1QQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEBIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBNUEBEAMgAkEVahACJAMLAkAgAQ0ACyABBEBBASEBIAAoAggkBCAAJAMFIABB1gE2AgAgAEEENgIEIAAjBDYCDCAAQQE2AhALIAELgQUBCX8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgQjBDYCCCAEQRRqJAMjAyECIwMiBSMENgIIIAVBFGokAwJAEBkiAEEBRg0AIwMiASMENgIIIwRB2gFBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHaAUEBEAMgAUEVahACJAMLIABBAUYNABAaIgBBAUYNACMDIgMjBDYCCCADQRRqJAMDQAJAIwMiASMENgIIIAFBFGokAyMDIgYjBDYCCCMEQdsBQQEQBCEIIAgjBGokBCMEEAUCQCAIQQFHBEBBASEAIAYoAggkBCAGJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAZBFGpB2wFBARADIAZBFWoQAiQDCwJAIABBAUYNABAZIgBBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQI2AhALIABBAUYNACAHQQFqIgdBAUcNAQsLIANBDDYCACADQQY2AgQgAyMENgIMIAMgBzYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVBBzYCACAFQQU2AgQgBSMENgIMIAVBBDYCEAsgAEEBRgRAIAIkAwUgAiACIAJBFGoQBjYCECACQQA2AgAgAkEHNgIEIAIgAigCEEEUamoQAiQDCwJAIABBAUYNAAsgAEEBRgRAQQEhACAEKAIIJAQgBCQDBSAEQdwBNgIAIARBBTYCBCAEIwQ2AgwgBEEBNgIQCyAAC6IFAQh/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIFIwQ2AgggBUEUaiQDIwMhAyMDIgYjBDYCCCAGQRRqJAMCQAJ/IwMiASMENgIIIAFBFGokAwNAAkAQDSIARQ0AQQAhACMDIgQjBDYCCCMEQeEBQQEQBCEHIAcjBGokBCMEEAUCQCAHQQFHBEBBASEAIAQoAggkBCAEJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIARBFGpB4QFBARADIARBFWoQAiQDCyAARQ0ACyAAQQFGRQRAIAJBAWohAgwBCwsgAkEATARAIAEoAggkBCABJANBAQwBCyABQRg2AgAgAUEGNgIEIAEjBDYCDCABIAI2AhBBAAsiAEEBRg0AQQAhBCMDIgEjBDYCCCABQRRqJAMDQAJAEA0iAEUNABALIgBFDQBBACEAIwMiAiMENgIIIwRB4QFBARAEIQcgByMEaiQEIwQQBQJAIAdBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakHhAUEBEAMgAkEVahACJAMLIABFDQALIABBAUZFBEAgBEEBaiEEDAELCyABQRI2AgAgAUEGNgIEIAEjBDYCDCABIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACAGKAIIJAQgBiQDBSAGQQc2AgAgBkEFNgIEIAYjBDYCDCAGQQI2AhALIABBAUYEQCADJAMFIAMgAyADQRRqEAY2AhAgA0EANgIAIANBBzYCBCADIAMoAhBBFGpqEAIkAwsCQCAAQQFGDQALIABBAUYEQEEBIQAgBSgCCCQEIAUkAwUgBUHiATYCACAFQQQ2AgQgBSMENgIMIAVBATYCEAsgAAvVAgEHfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiASMENgIIIAFBFGokAwJAEB0iAEEBRg0AIwMiAyMENgIIIANBFGokAwNAIwMiAiMENgIIIAJBFGokAyMDQQAhBSMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAVBAWohBQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAFNgIQJAMCQEEAIQBBAA0AEB8iAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRkUEQCAEQQFqIQQMAQsLIANBEjYCACADQQY2AgQgAyMENgIMIAMgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFB5gE2AgAgAUEGNgIEIAEjBDYCDCABQQI2AhALIAALgQEBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBAgIgFFDQAQISIBRQ0AECIiAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEHsATYCACAAQQg2AgQgACMENgIMIABBATYCEAsgAQueAgEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIwMiACMENgIIIwRB2gFBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAEEUakHaAUEBEAMgAEEVahACJAMLJAMCQCABQQFGDQAjAyEAEB0iAUEBRgRAIAAkAwUgACAAIABBFGoQBjYCECAAQQA2AgAgAEEHNgIEIAAgACgCEEEUamoQAiQDCyABQQFGDQALIAFBAUYEQEEBIQEgAigCCCQEIAIkAwUgAkH0ATYCACACQQ02AgQgAiMENgIMIAJBATYCEAsgAQvTAQEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiACMENgIIIABBFGokAyMDIwMiAiMENgIIIwRBgQJBAhAEIQMgAyMEaiQEIwQQBQJAIANBAkcEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAkEUakGBAkECEAMgAkEWahACJAMLJAMCQCABDQALIAEEQEEBIQEgACgCCCQEIAAkAwUgAEGDAjYCACAAQQ42AgQgACMENgIMIABBADYCEAsgAQvTAQEFfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiACMENgIIIABBFGokAyMDIwMiAiMENgIIIwRBkQJBAxAEIQMgAyMEaiQEIwQQBQJAIANBA0cEQEEBIQEgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQM2AhAgAkEUakGRAkEDEAMgAkEXahACJAMLJAMCQCABDQALIAEEQEEBIQEgACgCCCQEIAAkAwUgAEGUAjYCACAAQQs2AgQgACMENgIMIABBADYCEAsgAQuaDQEJfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiBiMENgIIIAZBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQZ8CQQMQBCEDIAMjBGokBCMEEAUCQCADQQNHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EDNgIQIAFBFGpBnwJBAxADIAFBF2oQAiQDCwJAIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAwJAIABBAUYNABAdIgBBAUYNACMDQQAhAiMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQJANBACEAQQANAEEAIQQjAyIBIwQ2AgggAUEUaiQDA0ACQCMDIgIjBDYCCCACQRRqJAMjAyMDIgMjBDYCCCMEQaICQQEQBCEFIAUjBGokBCMEEAUCQCAFQQFHBEBBASEAIAMoAggkBCADJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIANBFGpBogJBARADIANBFWoQAiQDCyQDAkAgAEEBRg0AIwNBACEDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgA0EBaiEDDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhAkA0EAIQBBAA0AEB4iAEEBRg0AIwNBACEDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgA0EBaiEDDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRg0AIARBAWoiBEEBRw0BCwsgAUEMNgIAIAFBBjYCBCABIwQ2AgwgASAENgIQQQAhAEEADQBBACEFIwMiAyMENgIIIANBFGokAwNAAkAjAyICIwQ2AgggAkEUaiQDIwMjAyIBIwQ2AgggAUEUaiQDIwMiBCMENgIIIwRBowJBARAEIQcgByMEaiQEIwQQBQJAIAdBAUcEQEEBIQAgBCgCCCQEIAQkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBEEUakGjAkEBEAMgBEEVahACJAMLAkAgAEEBRg0AQQAhBCMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIARBAWohBAwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAENgIQQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUECNgIQCyQDAkAgAEEBRg0AEDgiAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRg0AIAVBAWoiBUEBRw0BCwsgA0EMNgIAIANBBjYCBCADIwQ2AgwgAyAFNgIQQQAhAEEADQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBzABBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHMAEEBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBigCCCQEIAYkAwUgBkGkAjYCACAGQQc2AgQgBiMENgIMIAZBAzYCEAsgAAveAwEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAwJAEB4iAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBowJBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGjAkEBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQAQOCIAQQFGDQAjAxAOIQAkAyAAQQFGDQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0GrAjYCACADQQY2AgQgAyMENgIMIANBAjYCEAsgAAuXCgEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiBCMENgIIIARBFGokAyMDIwMiASMENgIIIAFBFGokAyMDIgIjBDYCCCMEQbECQQYQBCEDIAMjBGokBCMEEAUCQCADQQZHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EGNgIQIAJBFGpBsQJBBhADIAJBGmoQAiQDCwJAIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAskAwJAIABBAUYNACMDIQEQHSIAQQFGBEAgASQDBSABIAEgAUEUahAGNgIQIAFBADYCACABQQc2AgQgASABKAIQQRRqahACJAMLIABBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQJkEBRwRAIAFBAWoiAUEBRw0BCwsgAEEMNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQAjAyMDIgEjBDYCCCABQRRqJAMjAyICIwQ2AggjBEG3AkEBEAQhAyADIwRqJAQjBBAFAkAgA0EBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQbcCQQEQAyACQRVqEAIkAwsCQCAAQQFGDQBBACECIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhBBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQI2AhALJAMgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAnQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQAjAyMDIgEjBDYCCCABQRRqJANBACECIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhACQEEAIQBBAA0AIwMiAiMENgIIIwRBuAJBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakG4AkEBEAMgAkEVahACJAMLIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAzYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBCgCCCQEIAQkAwUgBEG5AjYCACAEQQk2AgQgBCMENgIMIARBAzYCEAsgAAuKBAEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIwMiASMENgIIIAFBFGokAyMDIgIjBDYCCCMEQaICQQEQBCEEIAQjBGokBCMEEAUCQCAEQQFHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBogJBARADIAJBFWoQAiQDCwJAIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAskAwJAIABBAUYNACMDIQEQHSIAQQFGBEAgASQDBSABIAEgAUEUahAGNgIQIAFBADYCACABQQc2AgQgASABKAIQQRRqahACJAMLIABBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQcICNgIAIANBCzYCBCADIwQ2AgwgA0EBNgIQCyAAC3oBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBAoIgFFDQAQKSIBRQ0ACwJAIAFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQc0CNgIAIABBCzYCBCAAIwQ2AgwgAEEBNgIQCyABC5oEAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIDIwQ2AgggA0EUaiQDIwMhARAdIgBBAUYEQCABJAMFIAEgASABQRRqEAY2AhAgAUEANgIAIAFBBzYCBCABIAEoAhBBFGpqEAIkAwsCQCAAQQFGDQAjAyMDIgEjBDYCCCABQRRqJAMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEAJAQQAhAEEADQAjAyICIwQ2AggjBEGiAkEBEAQhBCAEIwRqJAQjBBAFAkAgBEEBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQaICQQEQAyACQRVqEAIkAwsgAEEBRg0AQQAhAiMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEDNgIQCyQDIABBAUYNABAeIgBBAUYNACMDEA4hACQDIABBAUYNAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQdgCNgIAIANBCzYCBCADIwQ2AgwgA0ECNgIQCyAAC78CAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyICIwQ2AgggAkEUaiQDIwMjAyIBIwQ2AgggAUEUaiQDIwMiAyMENgIIIwRB4wJBAxAEIQQgBCMEaiQEIwQQBQJAIARBA0cEQEEBIQAgAygCCCQEIAMkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQM2AhAgA0EUakHjAkEDEAMgA0EXahACJAMLAkAgAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAskAwJAIABBAUYNABAeIgBBAUYNACMDEA4hACQDIABBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQeYCNgIAIAJBDTYCBCACIwQ2AgwgAkEBNgIQCyAAC/oMAQx/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIHIwQ2AgggB0EUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRB8wJBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHzAkEBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAwJAIABBAUYNACMDIgUjBDYCCCAFQRRqJAMDQAJAIwMiAiMENgIIIAJBFGokAwJAECsiAEEBRg0AQQAhCCMDIgYjBDYCCCAGQRRqJAMDQCMDIgEjBDYCCCABQRRqJAMjAyMDIgMjBDYCCCADQRRqJANBACEEIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgBEEBaiEEDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAQ2AhACQEEAIQBBAA0AIwMiBCMENgIIIwRB9AJBARAEIQogCiMEaiQEIwQQBQJAIApBAUcEQEEBIQAgBCgCCCQEIAQkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBEEUakH0AkEBEAMgBEEVahACJAMLIABBAUYNAEEAIQQjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCAEQQFqIQQMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgBDYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBBzYCACADQQU2AgQgAyMENgIMIANBAzYCEAskAwJAIABBAUYNABArIgBBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUZFBEAgCEEBaiEIDAELCyAGQRI2AgAgBkEGNgIEIAYjBDYCDCAGIAg2AhBBACEAQQANACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANACMDQQAhBiMDIgEjBDYCCCABQRRqJAMDQAJAIwMiAyMENgIIIwRB9AJBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgAygCCCQEIAMkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgA0EUakH0AkEBEAMgA0EVahACJAMLIABBAUYNACAGQQFqIgZBAUcNAQsLIAFBDDYCACABQQY2AgQgASMENgIMIAEgBjYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyAAQQFGDQAgCUEBaiIJQQFHDQELCyAFQQw2AgAgBUEGNgIEIAUjBDYCDCAFIAk2AhBBACEAQQANACMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQfUCQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpB9QJBARADIAFBFWoQAiQDCwJAIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBygCCCQEIAckAwUgB0H2AjYCACAHQQk2AgQgByMENgIMIAdBATYCEAsgAAt6AQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDAkAQLCIBRQ0AEC0iAUUNAAsCQCABQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEH/AjYCACAAQQ42AgQgACMENgIMIABBATYCEAsgAQvKBAEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIwMiAiMENgIIIwRB2gFBARAEIQEgASMEaiQEIwQQBQJAIAFBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakHaAUEBEAMgAkEVahACJAMLJAMCQCAAQQFGDQAQHSIAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBowJBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGjAkEBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQAQOCIAQQFGDQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0GNAzYCACADQQ02AgQgAyMENgIMIANBAjYCEAsgAAtrAQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDAkAQOCIBQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEGaAzYCACAAQQ82AgQgACMENgIMIABBATYCEAsgAQuPAwEEfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAwJAEC8iAEEBRg0AIwMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQACQBAyIgBFDQBBACEAIwMiASMENgIIIwRBzABBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHMAEEBEAMgAUEVahACJAMLIABFDQALIABBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQakDNgIAIAJBCDYCBCACIwQ2AgwgAkECNgIQCyAAC7YLAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIEIwQ2AgggBEEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBsQNBAhAEIQMgAyMEaiQEIwQQBQJAIANBAkcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAUEUakGxA0ECEAMgAUEWahACJAMLAkAgAEEBRg0AAn9BACEDIwMiASMENgIIIAFBFGokAwNAEAlBAUZFBEAgA0EBaiEDDAELCyADQQBMBEAgASgCCCQEIAEkA0EBDAELIAFBGDYCACABQQY2AgQgASMENgIMIAEgAzYCEEEACyIAQQFGDQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDAkAgAEEBRg0AIwMhAhAdIgBBAUYEQCACJAMFIAIgAiACQRRqEAY2AhAgAkEANgIAIAJBBzYCBCACIAIoAhBBFGpqEAIkAwsgAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQbMDQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBswNBARADIAFBFWoQAiQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMgAEEBRg0AEDAiAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQbQDQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBtANBARADIAFBFWoQAiQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMgAEEBRg0AIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBogJBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGiAkEBEAMgAUEVahACJAMLAkAgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDIABBAUYNABAeIgBBAUYNAAsgAEEBRgRAQQEhACAEKAIIJAQgBCQDBSAEQbUDNgIAIARBCTYCBCAEIwQ2AgwgBEEDNgIQCyAAC/8FAQx/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIEIwQ2AgggBEEUaiQDIwMiBiMENgIIIAZBFGokAwNAAkAjAyIFIwQ2AgggBUEUaiQDAkAQMSIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQBBACEJIwMiByMENgIIIAdBFGokAwNAIwMiASMENgIIIAFBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgMjBDYCCCMEQfQCQQEQBCEKIAojBGokBCMEEAUCQCAKQQFHBEBBASEAIAMoAggkBCADJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIANBFGpB9AJBARADIANBFWoQAiQDCwJAIABBAUYNAEEAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAwJAIABBAUYNABAxIgBBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQE2AhALIABBAUZFBEAgCUEBaiEJDAELCyAHQRI2AgAgB0EGNgIEIAcjBDYCDCAHIAk2AhBBACEAQQANAAsgAEEBRgRAQQEhACAFKAIIJAQgBSQDBSAFQQc2AgAgBUEFNgIEIAUjBDYCDCAFQQI2AhALIABBAUYNACAIQQFqIghBAUcNAQsLIAZBDDYCACAGQQY2AgQgBiMENgIMIAYgCDYCEAJAQQAhAEEADQALIABBAUYEQEEBIQAgBCgCCCQEIAQkAwUgBEG+AzYCACAEQQk2AgQgBCMENgIMIARBATYCEAsgAAuLBAEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIQEQHSIAQQFGBEAgASQDBSABIAEgAUEUahAGNgIQIAFBADYCACABQQc2AgQgASABKAIQQRRqahACJAMLAkAgAEEBRg0AIwMjAyIBIwQ2AgggAUEUaiQDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhACQEEAIQBBAA0AIwMiAiMENgIIIwRBogJBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAkEUakGiAkEBEAMgAkEVahACJAMLIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAzYCEAskAyAAQQFGDQAQHiIAQQFGDQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0HHAzYCACADQQg2AgQgAyMENgIMIANBAjYCEAsgAAuDBgEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQbcCQQEQBCEEIAQjBGokBCMEEAUCQCAEQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBtwJBARADIAFBFWoQAiQDCwJAIAANAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIgANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMCQCAADQBBACECIwMiACMENgIIIABBFGokAwNAEDNBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhBBACIADQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIgANACMDIgEjBDYCCCMEQbgCQQEQBCEEIAQjBGokBCMEEAUCQCAEQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBuAJBARADIAFBFWoQAiQDCyAADQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACIADQALIAAEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkEDNgIQCyQDIAANAAsgAARAQQEhACADKAIIJAQgAyQDBSADQc8DNgIAIANBBTYCBCADIwQ2AgwgA0EBNgIQCyAAC48BAQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIBIwQ2AgggAUEUaiQDAkAQJCIARQ0AECMiAEUNABA2IgBFDQAQNyIARQ0AEEUiAEUNAAsCQCAAQQFGDQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUHUAzYCACABQQo2AgQgASMENgIMIAFBATYCEAsgAAt0AQJ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIAIwQ2AgggAEEUaiQDAkAQHiIBQQFGDQAQNSIBQQFGDQALIAFBAUYEQEEBIQEgACgCCCQEIAAkAwUgAEHeAzYCACAAQQk2AgQgACMENgIMIABBAjYCEAsgAQu9CwEMfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiBiMENgIIIAZBFGokAyMDIwMiAiMENgIIIAJBFGokAyMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQbMDQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBswNBARADIAFBFWoQAiQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMCQCAAQQFGDQAjAyIFIwQ2AgggBUEUaiQDA0ACQCMDIgIjBDYCCCACQRRqJAMCQBA4IgBBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAEEAIQkjAyIHIwQ2AgggB0EUaiQDA0AjAyIBIwQ2AgggAUEUaiQDIwMjAyIDIwQ2AgggA0EUaiQDIwMiBCMENgIIIwRB9AJBARAEIQogCiMEaiQEIwQQBQJAIApBAUcEQEEBIQAgBCgCCCQEIAQkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgBEEUakH0AkEBEAMgBEEVahACJAMLAkAgAEEBRg0AQQAhBCMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIARBAWohBAwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAENgIQQQAhAEEADQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0EHNgIAIANBBTYCBCADIwQ2AgwgA0ECNgIQCyQDAkAgAEEBRg0AEDgiAEEBRg0AIwNBACEDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgA0EBaiEDDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAM2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAEEBRkUEQCAJQQFqIQkMAQsLIAdBEjYCACAHQQY2AgQgByMENgIMIAcgCTYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAsgAEEBRg0AIAhBAWoiCEEBRw0BCwsgBUEMNgIAIAVBBjYCBCAFIwQ2AgwgBSAINgIQQQAhAEEADQAjAyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEG0A0EBEAQhAyADIwRqJAQjBBAFAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbQDQQEQAyABQRVqEAIkAwsCQCAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAYoAggkBCAGJAMFIAZB5wM2AgAgBkEONgIEIAYjBDYCDCAGQQE2AhALIAALgAgBCH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgUjBDYCCCAFQRRqJAMjAyMDIgIjBDYCCCMEQfUDQQYQBCEBIAEjBGokBCMEEAUCQCABQQZHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EGNgIQIAJBFGpB9QNBBhADIAJBGmoQAiQDCyQDAkAgAEEBRg0AQQAhAyMDIgIjBDYCCCACQRRqJAMDQAJAIwMiASMENgIIIwRB+wNBBRAEIQQgBCMEaiQEIwQQBQJAIARBBUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQU2AhAgAUEUakH7A0EFEAMgAUEZahACJAMLIABBAUYNACADQQFqIgNBAUcNAQsLIAJBDDYCACACQQY2AgQgAiMENgIMIAIgAzYCEEEAIQBBAA0AIwMiAyMENgIIIANBFGokAwNAAkAjAyICIwQ2AgggAkEUaiQDIwMCf0EAIQQjAyIBIwQ2AgggAUEUaiQDA0AQCUEBRkUEQCAEQQFqIQQMAQsLIARBAEwEQCABKAIIJAQgASQDQQEMAQsgAUEYNgIAIAFBBjYCBCABIwQ2AgwgASAENgIQQQALIQAkAwJAIABBAUYNABA4IgBBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQE2AhALIABBAUYNACAGQQFqIgZBAUcNAQsLIANBDDYCACADQQY2AgQgAyMENgIMIAMgBjYCEEEAIQBBAA0AIwMjAyICIwQ2AgggAkEUaiQDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQAkBBACEAQQANACMDIgEjBDYCCCMEQcwAQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBzABBARADIAFBFWoQAiQDCyAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVB9QM2AgAgBUEGNgIEIAUjBDYCDCAFQQI2AhALIAAL4gQBBn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgMjBDYCCCADQRRqJAMjAyMDIgEjBDYCCCMEQYAEQQUQBCECIAIjBGokBCMEEAUCQCACQQVHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EFNgIQIAFBFGpBgARBBRADIAFBGWoQAiQDCyQDAkAgAEEBRg0AIwMCf0EAIQIjAyIBIwQ2AgggAUEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIAJBAEwEQCABKAIIJAQgASQDQQEMAQsgAUEYNgIAIAFBBjYCBCABIwQ2AgwgASACNgIQQQALIQAkAyAAQQFGDQAQOCIAQQFGDQAjAyMDIgEjBDYCCCABQRRqJAMjAyICIwQ2AggjBEHMAEEBEAQhBCAEIwRqJAQjBBAFAkAgBEEBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQcwAQQEQAyACQRVqEAIkAwsCQCAAQQFGDQBBACECIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAkEBaiECDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAI2AhBBACEAQQANAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQQc2AgAgAUEFNgIEIAEjBDYCDCABQQI2AhALJAMgAEEBRg0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBgAQ2AgAgA0EFNgIEIAMjBDYCDCADQQE2AhALIAALuAQBB38jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgMjBDYCCCADQRRqJAMCQBBAIgBBAUYNACMDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AIwMiBCMENgIIIARBFGokAwNAIwMiAiMENgIIIAJBFGokAyMDIQEQOiIAQQFGBEAgASQDBSABIAEgAUEUahAGNgIQIAFBADYCACABQQc2AgQgASABKAIQQRRqahACJAMLAkAgAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AEEAiAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAsgAEEBRkUEQCAFQQFqIQUMAQsLIARBEjYCACAEQQY2AgQgBCMENgIMIAQgBTYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAMoAggkBCADJAMFIANBhQQ2AgAgA0EENgIEIAMjBDYCDCADQQI2AhALIAALzAIBBH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGJBEEBEAQhAyADIwRqJAQjBBAFAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQYkEQQEQAyABQRVqEAIkAwsCQCAARQ0AQQAhACMDIgEjBDYCCCMEQYoEQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBigRBARADIAFBFWoQAiQDCyAARQ0ACwJAIAANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQYsENgIAIAJBCzYCBCACIwQ2AgwgAkEBNgIQCyAAC5wRAQR/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIDIwQ2AgggA0EUaiQDIwMiACMENgIIIwRBlgRBAhAEIQIgAiMEaiQEIwQQBQJAIAJBAkcEQEEBIQEgACgCCCQEIAAkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQI2AhAgAEEUakGWBEECEAMgAEEWahACJAMLAkAgAUUNAEEAIQEjAyIAIwQ2AggjBEGYBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQZgEQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGaBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQZoEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGbBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQZsEQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGdBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQZ0EQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGfBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQZ8EQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGhBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQaEEQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGjBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQaMEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGkBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQaQEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGlBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQaUEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGmBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQaYEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGnBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQacEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGoBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQagEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGKBEEBEAQhAiACIwRqJAQjBBAFAkAgAkEBRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAAQRRqQYoEQQEQAyAAQRVqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGpBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQakEQQIQAyAAQRZqEAIkAwsgAUUNAEEAIQEjAyIAIwQ2AggjBEGrBEEKEAQhAiACIwRqJAQjBBAFAkAgAkEKRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2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"); +let _rawWasm = _Shared.DecodeBase64("AGFzbQEAAAABIQZgAAF/YAF/AGABfwF/YAN/f38AYAN/f38Bf2ACf38BfwIQAQJqcwlwcmludF9pMzIAAQNMSwACAwQBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEAQEBCgYgBn8AQf4FC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAsH4AZKBm1lbW9yeQIABWlucHV0AwAFcmVhY2gDBQtpbnB1dExlbmd0aAMCBV9pbml0AAEHcHJvZ3JhbQAHCHN0bXRfdG9wAAgBdwAJAm5sAAoFZGlnaXQACwhkaWdpdF9uegAMBmxldHRlcgANCXRlcm1pbmF0ZQAOB2NvbW1lbnQADw5jb21tZW50X3NpbmdsZQAQDWNvbW1lbnRfbXVsdGkAEQhjb25zdGFudAASBnN0cmluZwATDHN0cmluZ19wbGFpbgAUCnN0cl9lc2NhcGUAFQ9zdHJpbmdfdGVtcGxhdGUAFgpzdHJpbmdfdGFnABcHYm9vbGVhbgAYBHZvaWQAGQdpbnRlZ2VyABoJaW50ZWdlcl91ABsEemVybwAcBWZsb2F0AB0EbmFtZQAeBmFjY2VzcwAfCGFjY2Vzc29yACANYWNjZXNzX3N0YXRpYwAhDmFjY2Vzc19keW5hbWljACILYWNjZXNzX2NvbXAAIwdkZWNsYXJlACQGYXNzaWduACUJc3RydWN0dXJlACYLc3RydWN0X3R5cGUAJwtzdHJ1Y3Rfc3RtdAAoC3N0cnVjdF9hdHRyACkNc3RydWN0X3NwcmVhZAAqCWNvbnRhaW5lcgArDmNvbnRhaW5lcl9pdGVtACwNY29udGFpbmVyX21hcAAtD2NvbnRhaW5lcl92YWx1ZQAuCGZ1bmN0aW9uAC8JZnVuY19oZWFkADAJZnVuY19hcmdzADEIZnVuY19hcmcAMgVibG9jawAzCmJsb2NrX3N0bXQANAlmdW5jX2NhbGwANQ5mdW5jX2NhbGxfYm9keQA2BnJldHVybgA3BXJhaXNlADgEZXhwcgA5C2V4cHJfcHJlZml4ADoKZXhwcl9pbmZpeAA7DGV4cHJfcG9zdGZpeAA8CmV4cHJfcGFyYW0APQlleHByX2NhbGwAPghleHByX2dldAA/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AyMENgIMIwNBATYCECAEQRRqQYQDQQEQAyAEQRVqEAIkAwsgAEEBRg0AQQAhBCMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIARBAWohBAwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACAENgIQQQAhAEEADQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0EHNgIAIANBBTYCBCADIwQ2AgwgA0EDNgIQCyQDAkAgAEEBRg0AECwiAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAEEBRkUEQCAIQQFqIQgMAQsLIAZBEjYCACAGQQY2AgQgBiMENgIMIAYgCDYCEEEAIQBBAA0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AIwNBACEGIwMiASMENgIIIAFBFGokAwNAAkAjAyIDIwQ2AggjBEGEA0EBEAQhBCAEIwRqJAQjBBAFAkAgBEEBRwRAQQEhACADKAIIJAQgAyQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECADQRRqQYQDQQEQAyADQRVqEAIkAwsgAEEBRg0AIAZBAWoiBkEBRw0BCwsgAUEMNgIAIAFBBjYCBCABIwQ2AgwgASAGNgIQJANBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALIABBAUYNACAJQQFqIglBAUcNAQsLIAVBDDYCACAFQQY2AgQgBSMENgIMIAUgCTYCEEEAIQBBAA0AIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRBhQNBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGFA0EBEAMgAUEVahACJAMLAkAgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDIABBAUYNAAsgAEEBRgRAQQEhACAHKAIIJAQgByQDBSAHQYYDNgIAIAdBCTYCBCAHIwQ2AgwgB0EBNgIQCyAAC3oBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBAtIgFFDQAQLiIBRQ0ACwJAIAFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQY8DNgIAIABBDjYCBCAAIwQ2AgwgAEEBNgIQCyABC8oEAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIDIwQ2AgggA0EUaiQDIwMjAyICIwQ2AggjBEHrAUEBEAQhASABIwRqJAQjBBAFAkAgAUEBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQesBQQEQAyACQRVqEAIkAwskAwJAIABBAUYNABAeIgBBAUYNACMDIwMiAiMENgIIIAJBFGokA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEAJAQQAhAEEADQAjAyIBIwQ2AggjBEG0AkEBEAQhBCAEIwRqJAQjBBAFAkAgBEEBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbQCQQEQAyABQRVqEAIkAwsgAEEBRg0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkEDNgIQCyQDIABBAUYNABA5IgBBAUYNAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQZ0DNgIAIANBDTYCBCADIwQ2AgwgA0ECNgIQCyAAC2sBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBA5IgFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQaoDNgIAIABBDzYCBCAAIwQ2AgwgAEEBNgIQCyABC48DAQR/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyICIwQ2AgggAkEUaiQDAkAQMCIAQQFGDQAjAyMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAAJAEDMiAEUNAEEAIQAjAyIBIwQ2AggjBEHMAEEBEAQhAyADIwRqJAQjBBAFAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQcwAQQEQAyABQRVqEAIkAwsgAEUNAAsgAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBuQM2AgAgAkEINgIEIAIjBDYCDCACQQI2AhALIAALtgsBBn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgQjBDYCCCAEQRRqJAMjAyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEHBA0ECEAQhAyADIwRqJAQjBBAFAkAgA0ECRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECABQRRqQcEDQQIQAyABQRZqEAIkAwsCQCAAQQFGDQACf0EAIQMjAyIBIwQ2AgggAUEUaiQDA0AQCUEBRkUEQCADQQFqIQMMAQsLIANBAEwEQCABKAIIJAQgASQDQQEMAQsgAUEYNgIAIAFBBjYCBCABIwQ2AgwgASADNgIQQQALIgBBAUYNAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMCQCAAQQFGDQAjAyECEB4iAEEBRgRAIAIkAwUgAiACIAJBFGoQBjYCECACQQA2AgAgAkEHNgIEIAIgAigCEEEUamoQAiQDCyAAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBwwNBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHDA0EBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQAQMSIAQQFGDQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBxANBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHEA0EBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQAjAyMDIgIjBDYCCCACQRRqJAMjAyIBIwQ2AggjBEGzAkEBEAQhAyADIwRqJAQjBBAFAkAgA0EBRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECABQRRqQbMCQQEQAyABQRVqEAIkAwsCQCAAQQFGDQBBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhBBACEAQQANAAsgAEEBRgRAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQI2AhALJAMgAEEBRg0AEB8iAEEBRg0ACyAAQQFGBEBBASEAIAQoAggkBCAEJAMFIARBxQM2AgAgBEEJNgIEIAQjBDYCDCAEQQM2AhALIAAL/wUBDH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgQjBDYCCCAEQRRqJAMjAyIGIwQ2AgggBkEUaiQDA0ACQCMDIgUjBDYCCCAFQRRqJAMCQBAyIgBBAUYNACMDQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQJANBACEAQQANAEEAIQkjAyIHIwQ2AgggB0EUaiQDA0AjAyIBIwQ2AgggAUEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiAyMENgIIIwRBhANBARAEIQogCiMEaiQEIwQQBQJAIApBAUcEQEEBIQAgAygCCCQEIAMkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgA0EUakGEA0EBEAMgA0EVahACJAMLAkAgAEEBRg0AQQAhAyMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIANBAWohAwwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACADNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyQDAkAgAEEBRg0AEDIiAEEBRg0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBATYCEAsgAEEBRkUEQCAJQQFqIQkMAQsLIAdBEjYCACAHQQY2AgQgByMENgIMIAcgCTYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAUoAggkBCAFJAMFIAVBBzYCACAFQQU2AgQgBSMENgIMIAVBAjYCEAsgAEEBRg0AIAhBAWoiCEEBRw0BCwsgBkEMNgIAIAZBBjYCBCAGIwQ2AgwgBiAINgIQAkBBACEAQQANAAsgAEEBRgRAQQEhACAEKAIIJAQgBCQDBSAEQc4DNgIAIARBCTYCBCAEIwQ2AgwgBEEBNgIQCyAAC4sEAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIDIwQ2AgggA0EUaiQDIwMhARAeIgBBAUYEQCABJAMFIAEgASABQRRqEAY2AhAgAUEANgIAIAFBBzYCBCABIAEoAhBBFGpqEAIkAwsCQCAAQQFGDQAjAyMDIgEjBDYCCCABQRRqJAMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEAJAQQAhAEEADQAjAyICIwQ2AggjBEGzAkEBEAQhBCAEIwRqJAQjBBAFAkAgBEEBRwRAQQEhACACKAIIJAQgAiQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECACQRRqQbMCQQEQAyACQRVqEAIkAwsgAEEBRg0AQQAhAiMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAJBAWohAgwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACACNgIQQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEDNgIQCyQDIABBAUYNABAfIgBBAUYNAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQdcDNgIAIANBCDYCBCADIwQ2AgwgA0ECNgIQCyAAC4MGAQZ/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIDIwQ2AgggA0EUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiASMENgIIIwRByAJBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHIAkEBEAMgAUEVahACJAMLAkAgAA0AQQAhASMDIgAjBDYCCCAAQRRqJAMDQBAJQQFGRQRAIAFBAWohAQwBCwsgAEESNgIAIABBBjYCBCAAIwQ2AgwgACABNgIQQQAiAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAwJAIAANAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQNEEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIgANACMDIwMiAiMENgIIIAJBFGokA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEAJAQQAiAA0AIwMiASMENgIIIwRBuAFBARAEIQQgBCMEaiQEIwQQBQJAIARBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakG4AUEBEAMgAUEVahACJAMLIAANAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIgANAAsgAARAQQEhACACKAIIJAQgAiQDBSACQQc2AgAgAkEFNgIEIAIjBDYCDCACQQM2AhALJAMgAA0ACyAABEBBASEAIAMoAggkBCADJAMFIANB3wM2AgAgA0EFNgIEIAMjBDYCDCADQQE2AhALIAALjwEBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgEjBDYCCCABQRRqJAMCQBAlIgBFDQAQJCIARQ0AEDciAEUNABA4IgBFDQAQRiIARQ0ACwJAIABBAUYNAAsgAEEBRgRAQQEhACABKAIIJAQgASQDBSABQeQDNgIAIAFBCjYCBCABIwQ2AgwgAUEBNgIQCyAAC3QBAn8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgAjBDYCCCAAQRRqJAMCQBAfIgFBAUYNABA2IgFBAUYNAAsgAUEBRgRAQQEhASAAKAIIJAQgACQDBSAAQe4DNgIAIABBCTYCBCAAIwQ2AgwgAEECNgIQCyABC70LAQx/IwNBgAhqPwBBEHRKBEBBAUAAGgsjAyIGIwQ2AgggBkEUaiQDIwMjAyICIwQ2AgggAkEUaiQDIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBwwNBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHDA0EBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAwJAIABBAUYNACMDIgUjBDYCCCAFQRRqJAMDQAJAIwMiAiMENgIIIAJBFGokAwJAEDkiAEEBRg0AIwNBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhAkA0EAIQBBAA0AQQAhCSMDIgcjBDYCCCAHQRRqJAMDQCMDIgEjBDYCCCABQRRqJAMjAyMDIgMjBDYCCCADQRRqJAMjAyIEIwQ2AggjBEGEA0EBEAQhCiAKIwRqJAQjBBAFAkAgCkEBRwRAQQEhACAEKAIIJAQgBCQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBATYCECAEQRRqQYQDQQEQAyAEQRVqEAIkAwsCQCAAQQFGDQBBACEEIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgBEEBaiEEDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAQ2AhBBACEAQQANAAsgAEEBRgRAQQEhACADKAIIJAQgAyQDBSADQQc2AgAgA0EFNgIEIAMjBDYCDCADQQI2AhALJAMCQCAAQQFGDQAQOSIAQQFGDQAjA0EAIQMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCADQQFqIQMMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAzYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgASgCCCQEIAEkAwUgAUEHNgIAIAFBBTYCBCABIwQ2AgwgAUEBNgIQCyAAQQFGRQRAIAlBAWohCQwBCwsgB0ESNgIAIAdBBjYCBCAHIwQ2AgwgByAJNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyAAQQFGDQAgCEEBaiIIQQFHDQELCyAFQQw2AgAgBUEGNgIEIAUjBDYCDCAFIAg2AhBBACEAQQANACMDIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQcQDQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBxANBARADIAFBFWoQAiQDCwJAIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAjYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBigCCCQEIAYkAwUgBkH3AzYCACAGQQ42AgQgBiMENgIMIAZBATYCEAsgAAuACAEIfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiBSMENgIIIAVBFGokAyMDIwMiAiMENgIIIwRBhQRBBhAEIQEgASMEaiQEIwQQBQJAIAFBBkcEQEEBIQAgAigCCCQEIAIkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQY2AhAgAkEUakGFBEEGEAMgAkEaahACJAMLJAMCQCAAQQFGDQBBACEDIwMiAiMENgIIIAJBFGokAwNAAkAjAyIBIwQ2AggjBEGLBEEFEAQhBCAEIwRqJAQjBBAFAkAgBEEFRwRAQQEhACABKAIIJAQgASQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBBTYCECABQRRqQYsEQQUQAyABQRlqEAIkAwsgAEEBRg0AIANBAWoiA0EBRw0BCwsgAkEMNgIAIAJBBjYCBCACIwQ2AgwgAiADNgIQQQAhAEEADQAjAyIDIwQ2AgggA0EUaiQDA0ACQCMDIgIjBDYCCCACQRRqJAMjAwJ/QQAhBCMDIgEjBDYCCCABQRRqJAMDQBAJQQFGRQRAIARBAWohBAwBCwsgBEEATARAIAEoAggkBCABJANBAQwBCyABQRg2AgAgAUEGNgIEIAEjBDYCDCABIAQ2AhBBAAshACQDAkAgAEEBRg0AEDkiAEEBRg0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBATYCEAsgAEEBRg0AIAZBAWoiBkEBRw0BCwsgA0EMNgIAIANBBjYCBCADIwQ2AgwgAyAGNgIQQQAhAEEADQAjAyMDIgIjBDYCCCACQRRqJANBACEBIwMiACMENgIIIABBFGokAwNAEAlBAUZFBEAgAUEBaiEBDAELCyAAQRI2AgAgAEEGNgIEIAAjBDYCDCAAIAE2AhACQEEAIQBBAA0AIwMiASMENgIIIwRBzABBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakHMAEEBEAMgAUEVahACJAMLIABBAUYNAEEAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAIoAggkBCACJAMFIAJBBzYCACACQQU2AgQgAiMENgIMIAJBAzYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgBSgCCCQEIAUkAwUgBUGFBDYCACAFQQY2AgQgBSMENgIMIAVBAjYCEAsgAAviBAEGfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAyMDIwMiASMENgIIIwRBkARBBRAEIQIgAiMEaiQEIwQQBQJAIAJBBUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQU2AhAgAUEUakGQBEEFEAMgAUEZahACJAMLJAMCQCAAQQFGDQAjAwJ/QQAhAiMDIgEjBDYCCCABQRRqJAMDQBAJQQFGRQRAIAJBAWohAgwBCwsgAkEATARAIAEoAggkBCABJANBAQwBCyABQRg2AgAgAUEGNgIEIAEjBDYCDCABIAI2AhBBAAshACQDIABBAUYNABA5IgBBAUYNACMDIwMiASMENgIIIAFBFGokAyMDIgIjBDYCCCMEQcwAQQEQBCEEIAQjBGokBCMEEAUCQCAEQQFHBEBBASEAIAIoAggkBCACJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAJBFGpBzABBARADIAJBFWoQAiQDCwJAIABBAUYNAEEAIQIjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCACQQFqIQIMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgAjYCEEEAIQBBAA0ACyAAQQFGBEBBASEAIAEoAggkBCABJAMFIAFBBzYCACABQQU2AgQgASMENgIMIAFBAjYCEAskAyAAQQFGDQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0GQBDYCACADQQU2AgQgAyMENgIMIANBATYCEAsgAAu4BAEHfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAyMENgIIIANBFGokAwJAEEEiAEEBRg0AIwMjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQAjAyIEIwQ2AgggBEEUaiQDA0AjAyICIwQ2AgggAkEUaiQDIwMhARA7IgBBAUYEQCABJAMFIAEgASABQRRqEAY2AhAgAUEANgIAIAFBBzYCBCABIAEoAhBBFGpqEAIkAwsCQCAAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQAQQSIAQQFGDQAjA0EAIQEjAyIAIwQ2AgggAEEUaiQDA0AQCUEBRkUEQCABQQFqIQEMAQsLIABBEjYCACAAQQY2AgQgACMENgIMIAAgATYCECQDQQAhAEEADQALIABBAUYEQEEBIQAgAigCCCQEIAIkAwUgAkEHNgIAIAJBBTYCBCACIwQ2AgwgAkECNgIQCyAAQQFGRQRAIAVBAWohBQwBCwsgBEESNgIAIARBBjYCBCAEIwQ2AgwgBCAFNgIQQQAhAEEADQALIABBAUYEQEEBIQAgAygCCCQEIAMkAwUgA0GVBDYCACADQQQ2AgQgAyMENgIMIANBAjYCEAsgAAvMAgEEfyMDQYAIaj8AQRB0SgRAQQFAABoLIwMiAiMENgIIIAJBFGokAyMDIgEjBDYCCCMEQZkEQQEQBCEDIAMjBGokBCMEEAUCQCADQQFHBEBBASEAIAEoAggkBCABJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIAFBFGpBmQRBARADIAFBFWoQAiQDCwJAIABFDQBBACEAIwMiASMENgIIIwRBmgRBARAEIQMgAyMEaiQEIwQQBQJAIANBAUcEQEEBIQAgASgCCCQEIAEkAwwBCyMDQQA2AgAjA0EHNgIEIwMjBDYCDCMDQQE2AhAgAUEUakGaBEEBEAMgAUEVahACJAMLIABFDQALAkAgAA0ACyAABEBBASEAIAIoAggkBCACJAMFIAJBmwQ2AgAgAkELNgIEIAIjBDYCDCACQQE2AhALIAALnBEBBH8jA0GACGo/AEEQdEoEQEEBQAAaCyMDIgMjBDYCCCADQRRqJAMjAyIAIwQ2AggjBEGmBEECEAQhAiACIwRqJAQjBBAFAkAgAkECRwRAQQEhASAAKAIIJAQgACQDDAELIwNBADYCACMDQQc2AgQjAyMENgIMIwNBAjYCECAAQRRqQaYEQQIQAyAAQRZqEAIkAwsCQCABRQ0AQQAhASMDIgAjBDYCCCMEQagEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBqARBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQaoEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBqgRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQasEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBqwRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQa0EQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBrQRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQa8EQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBrwRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbEEQQIQBCECIAIjBGokBCMEEAUCQCACQQJHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0ECNgIQIABBFGpBsQRBAhADIABBFmoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbMEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBswRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbQEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBtARBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbUEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBtQRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbYEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBtgRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbcEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBtwRBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQbgEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBuARBARADIABBFWoQAiQDCyABRQ0AQQAhASMDIgAjBDYCCCMEQZoEQQEQBCECIAIjBGokBCMEEAUCQCACQQFHBEBBASEBIAAoAggkBCAAJAMMAQsjA0EANgIAIwNBBzYCBCMDIwQ2AgwjA0EBNgIQIABBFGpBmgRB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"); let _ctx = null; if (typeof window === 'undefined') { _ctx = new WebAssembly.Instance( @@ -60,15 +60,18 @@ export function Parse_Constant (data, refMapping = true) { export function Parse_String (data, refMapping = true) { return _Shared.Parse(_ctx, data, refMapping, "string"); } -export function Parse_String_ascii (data, refMapping = true) { - return _Shared.Parse(_ctx, data, refMapping, "string_ascii"); -} -export function Parse_String_utf8 (data, refMapping = true) { - return _Shared.Parse(_ctx, data, refMapping, "string_utf8"); +export function Parse_String_plain (data, refMapping = true) { + return _Shared.Parse(_ctx, data, refMapping, "string_plain"); } export function Parse_Str_escape (data, refMapping = true) { return _Shared.Parse(_ctx, data, refMapping, "str_escape"); } +export function Parse_String_template (data, refMapping = true) { + return _Shared.Parse(_ctx, data, refMapping, "string_template"); +} +export function Parse_String_tag (data, refMapping = true) { + return _Shared.Parse(_ctx, data, refMapping, "string_tag"); +} export function Parse_Boolean (data, refMapping = true) { return _Shared.Parse(_ctx, data, refMapping, "boolean"); } diff --git a/source/compiler/codegen/expression/constant.ts b/source/compiler/codegen/expression/constant.ts index 2b96446..3e21e95 100644 --- a/source/compiler/codegen/expression/constant.ts +++ b/source/compiler/codegen/expression/constant.ts @@ -7,6 +7,8 @@ import { IntrinsicValue } from "~/compiler/intrinsic.ts"; import { Instruction } from "~/wasm/index.ts"; import { SolidType } from "~/compiler/codegen/expression/type.ts"; import { Context } from "~/compiler/codegen/context.ts"; +import { Panic } from "~/compiler/helper.ts"; +import { File } from "~/compiler/file.ts"; export function CompileConstant(ctx: Context, syntax: Syntax.Term_Constant, expect?: SolidType): IntrinsicValue { if (!(expect instanceof IntrinsicType)) expect = undefined; @@ -118,27 +120,32 @@ function CompileFloat(ctx: Context, syntax: Syntax.Term_Float, expect?: Intrinsi return f32.value; } -export function SimplifyString(syntax: Syntax.Term_String) { - const inner = syntax.value[0]; - const type = inner.type === "string_ascii" ? "ascii" : "utf8"; - let str = ""; - for (const chunk of inner.value[0].value) { +const ESCAPE_SYMBOLS = { + "0": "\0", + "f": "\f", + "n": "\n", + "r": "\r", + "v": "\v", +}; +export function SimplifyString(file: File, syntax: Syntax.Term_String_plain) { + let str = ""; + for (const chunk of syntax.value[0].value) { if (chunk.type == "literal") { str += chunk.value; continue; } const esc = chunk.value[0].value; - switch (esc) { - case "0": str += "\0"; break; - case "f": str += "\f"; break; - case "n": str += "\n"; break; - case "r": str += "\r"; break; - case "v": str += "\v"; break; - default: str += esc; + if (esc in ESCAPE_SYMBOLS) { + str += ESCAPE_SYMBOLS[esc as keyof typeof ESCAPE_SYMBOLS]; + continue; } + + Panic(`Unknown string escape character "\\${esc}"`, + { path: file.path, name: file.name, ref: chunk.ref } + ); } - return { type, str } + return str; } \ No newline at end of file diff --git a/source/compiler/file.ts b/source/compiler/file.ts index 72fbc83..4272f0d 100644 --- a/source/compiler/file.ts +++ b/source/compiler/file.ts @@ -124,13 +124,13 @@ function IngestStructure(file: File, syntax: Term_Structure) { function IngestExternal(file: File, syntax: Term_External) { if (syntax.value[0].type !== "ext_import") throw new Error(`Unsupported external export`); - const name = SimplifyString(syntax.value[0].value[1]); + const name = SimplifyString(file, syntax.value[0].value[1]); for (const inner of syntax.value[0].value[0].value) { const line = inner.value[0]; const type = line.type; switch (type) { case "function": { - IngestFunction(file, line, name.str); + IngestFunction(file, line, name); } break; case "ext_import_var": throw new Error(`Import global unimplemented`); default: AssertUnreachable(type); From 71ecffc85838a11ee062d13c39a0b74b71a10ed5 Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Wed, 10 Apr 2024 18:22:05 +1000 Subject: [PATCH 2/5] +benchmark scaffold --- benchmark/.gitignore | 1 + benchmark/http-ping/basic-single-thread.sa | 67 ++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 benchmark/.gitignore create mode 100644 benchmark/http-ping/basic-single-thread.sa diff --git a/benchmark/.gitignore b/benchmark/.gitignore new file mode 100644 index 0000000..d2df391 --- /dev/null +++ b/benchmark/.gitignore @@ -0,0 +1 @@ +!*.sa \ No newline at end of file diff --git a/benchmark/http-ping/basic-single-thread.sa b/benchmark/http-ping/basic-single-thread.sa new file mode 100644 index 0000000..f1da119 --- /dev/null +++ b/benchmark/http-ping/basic-single-thread.sa @@ -0,0 +1,67 @@ +struct IPv4Address { + a: i8; + b: i8; + c: i8; + d: i8; +} + +struct SockAddr_In { + sin_family: i16; + sin_port: i16; + sin_addr: IPv4Address; + + // padding for IPv6 union support + sin_zero: i64; +} + +struct SockAddr { + sin_family: i16; + + // padding + pad_0: i64; + pad_1: i32; + pad_2: i16; +} + +external import { + fn fd_close(fd: i32): i32; + + fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32): i32; + fn sock_shutdown(fd: i32, how: i32): i32; + + fn sock_bind(fd: i32, addr: SockAddr_In): i32; + fn sock_listen(fd: i32, backlog: i32): i32; + fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: i32@, remote_addr: SockAddr_In@): i32; + fn sock_send(fd: i32, iovs: iovec@, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; + +} from "wasix_32v1"; + +fn main() { + let fd_sock = 0; + sock_open(1, 1, 0, fd_sock@); + + let bind_addr: SockAddr_In = [ + .sin_family = 1 // AF_INET, + .sin_port = 8080, + .sin_addr = [ .a = 0, .b = 0, .c = 0, .d = 0 ], + .sin_zero = 0 + ]; + sock_bind(0, bind_addr); + sock_listen(fd_sock, 100); + + loop(); +} + + +fn loop(fd_sock: i32) { + let remote_addr: SockAddr = [ none ]; + + let fd_req = 0; + sock_accept_v2(fd_sock, 0, fd_req@, remote_addr@); + + sock_send(fd_req, "HTTP/1.1 200 OK\r\n\r\nHello, World!", 1, 0, remote_addr); + sock_shutdown(); + fd_close(); + + return_tail loop(fd_sock); +} \ No newline at end of file From 7c6dbc9db3cfc9821321889220c5c4c833464287 Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Thu, 18 Apr 2024 11:49:00 +1000 Subject: [PATCH 3/5] use boxed ints to remove borrowing needs --- benchmark/http-ping/basic-single-thread.sa | 77 ++++++++++++---------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/benchmark/http-ping/basic-single-thread.sa b/benchmark/http-ping/basic-single-thread.sa index f1da119..b85e19f 100644 --- a/benchmark/http-ping/basic-single-thread.sa +++ b/benchmark/http-ping/basic-single-thread.sa @@ -1,8 +1,23 @@ +external import { + fn fd_close(fd: i32): i32; + + fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32): i32; + // fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32@): i32; + fn sock_shutdown(fd: i32, how: i32): i32; + + fn sock_bind(fd: i32, addr: SockAddr_In): i32; + fn sock_listen(fd: i32, backlog: i32): i32; + + + fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: BoxInt, remote_addr: SockAddr): i32; + // fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: i32@, remote_addr: SockAddr_In@): i32; + fn sock_send(fd: i32, iovs: iovec, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; + // fn sock_send(fd: i32, iovs: iovec@, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; + +} from "wasix_32v1"; + struct IPv4Address { - a: i8; - b: i8; - c: i8; - d: i8; + a: i8; b: i8; c: i8; d: i8; } struct SockAddr_In { @@ -18,50 +33,44 @@ struct SockAddr { sin_family: i16; // padding - pad_0: i64; - pad_1: i32; - pad_2: i16; + _0: i64; _1: i32; _2: i16; } -external import { - fn fd_close(fd: i32): i32; - - fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32): i32; - fn sock_shutdown(fd: i32, how: i32): i32; - - fn sock_bind(fd: i32, addr: SockAddr_In): i32; - fn sock_listen(fd: i32, backlog: i32): i32; - fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: i32@, remote_addr: SockAddr_In@): i32; - fn sock_send(fd: i32, iovs: iovec@, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; - -} from "wasix_32v1"; +struct BoxInt { + value: i32; +} -fn main() { - let fd_sock = 0; - sock_open(1, 1, 0, fd_sock@); +fn main(): none { + let server_fd: BoxInt = [ .value = 0 ]; + sock_open(1, 1, 0, server_fd.value); // exploiting unsafe struct handling + // // sock_open(1, 1, 0, fd_sock@); let bind_addr: SockAddr_In = [ - .sin_family = 1 // AF_INET, + .sin_family = 1, // AF_INET .sin_port = 8080, .sin_addr = [ .a = 0, .b = 0, .c = 0, .d = 0 ], - .sin_zero = 0 + .sin_zero = 0 // char[8] padding for sockaddr compatibility ]; sock_bind(0, bind_addr); - sock_listen(fd_sock, 100); + sock_listen(server_fd.value, 100); - loop(); -} + loop(server_fd.value); + return; +} -fn loop(fd_sock: i32) { +fn loop(server_fd: i32): none { let remote_addr: SockAddr = [ none ]; - let fd_req = 0; - sock_accept_v2(fd_sock, 0, fd_req@, remote_addr@); + let req_fd: BoxInt = [ .value = 0 ]; + sock_accept_v2(server_fd, 0, req_fd, remote_addr); // exploiting unsafe struct handling + // sock_accept_v2(server_fd, 0, fd_req@, remote_addr@); + + sock_send(fd_req.value, "HTTP/1.1 200 OK\r\n\r\nHello, World!", 1, 0, remote_addr); - sock_send(fd_req, "HTTP/1.1 200 OK\r\n\r\nHello, World!", 1, 0, remote_addr); - sock_shutdown(); - fd_close(); + let SHUT_RDWR = 2; + sock_shutdown(req_fd.value, SHUT_RDWR); + fd_close(req_fd.value); - return_tail loop(fd_sock); + return_tail loop(server_fd); } \ No newline at end of file From 2f0af3a2959a9dc8affa5d96b058ba4ebeb38395 Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:15:03 +1000 Subject: [PATCH 4/5] ~simplified value boxing --- benchmark/http-ping/basic-single-thread.sa | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/benchmark/http-ping/basic-single-thread.sa b/benchmark/http-ping/basic-single-thread.sa index b85e19f..7e59674 100644 --- a/benchmark/http-ping/basic-single-thread.sa +++ b/benchmark/http-ping/basic-single-thread.sa @@ -41,9 +41,9 @@ struct BoxInt { } fn main(): none { - let server_fd: BoxInt = [ .value = 0 ]; - sock_open(1, 1, 0, server_fd.value); // exploiting unsafe struct handling - // // sock_open(1, 1, 0, fd_sock@); + let _fd: BoxInt = [ .value = 0 ]; + sock_open(1, 1, 0, _fd.value); // exploiting unsafe struct handling: sock_open(1, 1, 0, fd_sock@); + let server_fd = server_fd.value; let bind_addr: SockAddr_In = [ .sin_family = 1, // AF_INET @@ -51,10 +51,10 @@ fn main(): none { .sin_addr = [ .a = 0, .b = 0, .c = 0, .d = 0 ], .sin_zero = 0 // char[8] padding for sockaddr compatibility ]; - sock_bind(0, bind_addr); - sock_listen(server_fd.value, 100); + sock_bind(server_fd, bind_addr); + sock_listen(server_fd, 100); - loop(server_fd.value); + loop(server_fd); return; } @@ -62,15 +62,15 @@ fn main(): none { fn loop(server_fd: i32): none { let remote_addr: SockAddr = [ none ]; - let req_fd: BoxInt = [ .value = 0 ]; - sock_accept_v2(server_fd, 0, req_fd, remote_addr); // exploiting unsafe struct handling - // sock_accept_v2(server_fd, 0, fd_req@, remote_addr@); + let _fd: BoxInt = [ .value = 0 ]; + sock_accept_v2(server_fd, 0, req_fd, remote_addr); // exploiting unsafe struct handling: sock_accept_v2(server_fd, 0, fd_req@, remote_addr@); + let req_fd = _fd.value; sock_send(fd_req.value, "HTTP/1.1 200 OK\r\n\r\nHello, World!", 1, 0, remote_addr); let SHUT_RDWR = 2; - sock_shutdown(req_fd.value, SHUT_RDWR); - fd_close(req_fd.value); + sock_shutdown(req_fd, SHUT_RDWR); + fd_close(req_fd); return_tail loop(server_fd); } \ No newline at end of file From 58f1242994668b5c2e17e019a76f8163944323d1 Mon Sep 17 00:00:00 2001 From: Ajani Bilby <11359344+AjaniBilby@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:25:22 +1000 Subject: [PATCH 5/5] it actually works now :O --- benchmark/http-ping/basic-single-thread.sa | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/benchmark/http-ping/basic-single-thread.sa b/benchmark/http-ping/basic-single-thread.sa index 7e59674..97c1167 100644 --- a/benchmark/http-ping/basic-single-thread.sa +++ b/benchmark/http-ping/basic-single-thread.sa @@ -1,7 +1,7 @@ external import { fn fd_close(fd: i32): i32; - fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32): i32; + fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: BoxInt): i32; // fn sock_open(pf_net: i32, sock_stream: i32, protocol: i32, ptr: i32@): i32; fn sock_shutdown(fd: i32, how: i32): i32; @@ -11,7 +11,7 @@ external import { fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: BoxInt, remote_addr: SockAddr): i32; // fn sock_accept_v2(fd: i32, flags: i32, sock_ptr: i32@, remote_addr: SockAddr_In@): i32; - fn sock_send(fd: i32, iovs: iovec, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; + fn sock_send(fd: i32, iovs: i32, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; // fn sock_send(fd: i32, iovs: iovec@, iovs_len: i32, flags: i32, remote_addr: SockAddr): i32; } from "wasix_32v1"; @@ -41,9 +41,9 @@ struct BoxInt { } fn main(): none { - let _fd: BoxInt = [ .value = 0 ]; - sock_open(1, 1, 0, _fd.value); // exploiting unsafe struct handling: sock_open(1, 1, 0, fd_sock@); - let server_fd = server_fd.value; + let _fd: BoxInt = [ none ]; + sock_open(1, 1, 0, _fd); // exploiting unsafe struct handling: sock_open(1, 1, 0, fd_sock@); + let server_fd = _fd.value; let bind_addr: SockAddr_In = [ .sin_family = 1, // AF_INET @@ -62,15 +62,17 @@ fn main(): none { fn loop(server_fd: i32): none { let remote_addr: SockAddr = [ none ]; - let _fd: BoxInt = [ .value = 0 ]; - sock_accept_v2(server_fd, 0, req_fd, remote_addr); // exploiting unsafe struct handling: sock_accept_v2(server_fd, 0, fd_req@, remote_addr@); + let _fd: BoxInt = [ none ]; + sock_accept_v2(server_fd, 0, _fd, remote_addr); // exploiting unsafe struct handling: sock_accept_v2(server_fd, 0, fd_req@, remote_addr@); let req_fd = _fd.value; - sock_send(fd_req.value, "HTTP/1.1 200 OK\r\n\r\nHello, World!", 1, 0, remote_addr); + sock_send(req_fd, "HTTP/1.1 200 OK\r\nContent-Type: text/plain; cgarset=utf-8\r\n\r\nHello, World!", 1, 0, remote_addr); let SHUT_RDWR = 2; sock_shutdown(req_fd, SHUT_RDWR); fd_close(req_fd); - return_tail loop(server_fd); + // wasmer doesn't support tail calls + // return_tail loop(server_fd); + loop(server_fd); return; } \ No newline at end of file